数据库对比报告

报告生成时间:2025-04-16 08:00:46

源数据库:pc-bp1zip05gl1b1ga3veo.rwlb.rds.aliyuncs.com:3306/serviceordercenter

目标数据库:pc-bp1zip05gl1b1ga3veo.rwlb.rds.aliyuncs.com:3306/serviceordercenterhis

状态:completed

错误信息:'referenced_table'

对比结果摘要

总对象数 3419
总差异数 1459
配置差异 0
表结构差异 988
视图差异 99
存储过程差异 84
函数差异 288
触发器差异 0

Config 差异

Table 差异

workflownodestepconditions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_persons2

{
  "message": "\u8868 tm_persons2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons2` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

home_auditcount

{
  "message": "\u8868 home_auditcount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_auditcount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '质检单量',
  `OnceAuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '首次质检即完成单量',
  `OnceAuditRate` int(11) DEFAULT NULL COMMENT '质检一次通过率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=13739 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_质检信息'

workflowruntimeitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

workflowprocessstates_bak

{
  "message": "\u8868 workflowprocessstates_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowprocessstates_bak`;

test_encryption

{
  "message": "\u8868 test_encryption \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_encryption` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) DEFAULT NULL,
  `Data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8

testuser

{
  "columns": {
    "Id": {
      "extra": {
        "source": "auto_increment",
        "target": ""
      },
      "nullable": {
        "source": false,
        "target": true
      }
    }
  },
  "indexes": {
    "PRIMARY": {
      "message": "\u7d22\u5f15 PRIMARY \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "idx_testuser_lookup": {
      "message": "\u7d22\u5f15 idx_testuser_lookup \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `testuser` DROP INDEX `idx_testuser_lookup`;

home_ordercusttop

{
  "message": "\u8868 home_ordercusttop \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttop` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_累计下单客户TOP10'

vi_workorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_workresourceinfo_20210705

{
  "message": "\u8868 tm_workresourceinfo_20210705 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705`;

counter

{
  "message": "\u8868 counter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `counter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Counter_Key` (`Key`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

slow911

{
  "message": "\u8868 slow911 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow911` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

hangfire_distributedlock

{
  "indexes": {
    "Resource": {
      "message": "\u7d22\u5f15 Resource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_customerinfoformove20210927

{
  "message": "\u8868 tm_customerinfoformove20210927 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_customerinfoformove20210927`;

tm_persons20250121

{
  "message": "\u8868 tm_persons20250121 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250121` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

vi_workorderlistforchp_audit

{
  "message": "\u8868 vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

home_ordertotalcnt

{
  "message": "\u8868 home_ordertotalcnt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordertotalcnt` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CntType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数量类型(1下单量2完成量3关闭量4质检量5服务客数量6服务施工人数)',
  `CntNum` int(11) NOT NULL DEFAULT '0' COMMENT '总量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CntType` (`CntType`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_业务累计服务信息'

de_tb_merchant01

{
  "message": "\u8868 de_tb_merchant01 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant01` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息01'

tm_meigui

{
  "message": "\u8868 tm_meigui \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_meigui`;

workflownoderelatedactors_bak

{
  "message": "\u8868 workflownoderelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownoderelatedactors_bak`;

workflownodeactors_bak

{
  "message": "\u8868 workflownodeactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactors_bak`;

tmp_canaltest2

{
  "message": "\u8868 tmp_canaltest2 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest2`;

check_workflowjsoninfo

{
  "message": "\u8868 check_workflowjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsoninfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `CheckType` smallint(6) DEFAULT NULL COMMENT '问题原因',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '验证日期',
  `CorrectStatus` smallint(6) DEFAULT NULL COMMENT '更正状态',
  `UnCorrectJson` json DEFAULT NULL COMMENT '历史错误Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-CheckDate` (`CheckDate`) USING BTREE,
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CheckType` (`CheckType`) USING BTREE,
  KEY `NON-CorrectStatus` (`CorrectStatus`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8612340 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=74 ROW_FORMAT=DYNAMIC COMMENT='工单工作流数据验证日志表'

vi_qualityorderdetail

{
  "columns": {
    "AuditContent": {
      "message": "\u5217 AuditContent \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

de_testuser

{
  "message": "\u8868 de_testuser \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

home_timeduration

{
  "message": "\u8868 home_timeduration \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_timeduration` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DispatchDuration` int(11) NOT NULL DEFAULT '0' COMMENT '调度时长(小时)',
  `ServiceDuration` int(11) NOT NULL DEFAULT '0' COMMENT '总服务时长(小时)',
  `AuditDuration` int(11) NOT NULL DEFAULT '0' COMMENT '质检响应时长(小时)',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=2017 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_时效信息'

tmp_districtyx3

{
  "message": "\u8868 tmp_districtyx3 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx3` (
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

flink_sinka

{
  "message": "\u8868 flink_sinka \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_sinka`;

tb_custcolumn

{
  "indexes": {
    "NON-Value": {
      "message": "\u7d22\u5f15 NON-Value \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompletecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_userarea

{
  "message": "\u8868 home_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户姓名',
  `Ascription` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  `TeamCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队Code(basic_teaminfo.Code)',
  `TeamName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队名称',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProviderName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商名称',
  `OperateAttributes` smallint(6) DEFAULT NULL COMMENT '经营属性(0自营 1非自营)',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `CheckDate` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-TeamCode` (`TeamCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-CheckDate` (`CheckDate`),
  KEY `NON-OrderTypeName` (`OrderTypeName`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-UserId` (`UserId`),
  KEY `NON-CityCode` (`CityCode`),
  KEY `NON-Ascription` (`Ascription`),
  KEY `NON-LoginName` (`LoginName`)
) ENGINE=InnoDB AUTO_INCREMENT=327676 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础信息_人员覆盖区域信息'

vi_workorderforsearch

{
  "message": "\u8868 vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderrecheckdetail

{
  "message": "\u8868 vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

tm_workresourceinfo_20210705a

{
  "message": "\u8868 tm_workresourceinfo_20210705a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705a`;

config_usermessagereminder

{
  "message": "\u8868 config_usermessagereminder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `config_usermessagereminder` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `MessageType` smallint(6) DEFAULT NULL COMMENT '消息提醒类型(1语音 2横幅)',
  `RestingEnable` smallint(6) DEFAULT '1' COMMENT '休息中是否启用(0否1是)',
  `Enable` smallint(6) DEFAULT '1' COMMENT '是否启用(0否1是)',
  `CreatedById` char(36) DEFAULT NULL COMMENT '信息录入人员',
  `CreatedAt` datetime DEFAULT NULL COMMENT '信息录入时间',
  `UpdatedById` char(36) DEFAULT NULL COMMENT '信息最后修改人员',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '信息最后修改时间',
  `DeletedById` char(36) DEFAULT NULL COMMENT '信息删除人员',
  `DeletedAt` datetime DEFAULT NULL COMMENT '信息删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标识',
  PRIMARY KEY (`Id`),
  KEY `NON-UserCenterId` (`UserCenterId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-MessageType` (`MessageType`) USING BTREE,
  KEY `NON-RestingEnable` (`RestingEnable`) USING BTREE,
  KEY `NON-Enable` (`Enable`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='消息提醒配置表'

workflownoderelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

test_service_info

{
  "message": "\u8868 test_service_info \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_service_info` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_areageo

{
  "message": "\u8868 home_areageo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_areageo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `ALat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ALng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=3821 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_工单完成率地区经纬度'

tmp_districtyx2

{
  "message": "\u8868 tmp_districtyx2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx2` (
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `市编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimerelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_vhsworkorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverLoginName": {
      "message": "\u5217 ReceiverLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserId": {
      "message": "\u5217 ReceiverUserId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserName": {
      "message": "\u5217 ReceiverUserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetial

{
  "message": "\u8868 vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

workflowruntimeattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

basic_workflowstatus_bak_new

{
  "message": "\u8868 basic_workflowstatus_bak_new \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak_new`;

工作簿2

{
  "message": "\u8868 \u5de5\u4f5c\u7c3f2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `工作簿2` (
  `产品线` text,
  `一级组织` text,
  `二级组织` text,
  `三级组织` text,
  `项目名称` text,
  `版本号` text,
  `优先级别` text,
  `严重级别` text,
  `发生时间` text,
  `是否为客户投诉` text,
  `问题类型` text,
  `问题大类` text,
  `问题小类` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_feeiteminfo

{
  "indexes": {
    "GenerationMode": {
      "message": "\u7d22\u5f15 GenerationMode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_viewdata

{
  "message": "\u8868 home_viewdata \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_viewdata` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DataType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `JsonValue` json DEFAULT NULL COMMENT 'data数据',
  `InsertTime` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `home_viewdata_ProCode_index` (`ProCode`),
  KEY `home_viewdata_DateType_index` (`DateType`),
  KEY `home_viewdata_DataType_index` (`DataType`),
  KEY `home_viewdata_ProviderCode_index` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=1036829 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='大屏工单_首页视图'

tb_workorderdetailmodel

{
  "message": "\u8868 tb_workorderdetailmodel \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderdetailmodel` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Report` int(11) NOT NULL COMMENT '报表(1-金融工单明细表)',
  `ModelName` varchar(50) DEFAULT NULL COMMENT '报表模板名称',
  `Column` text COMMENT '自定义字段',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '模板创建人账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '模板创建人姓名',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `Deleted` tinyint(4) DEFAULT NULL COMMENT '是否删除',
  PRIMARY KEY (`Id`),
  KEY `NON-Report` (`Report`) USING BTREE,
  KEY `NON-ModelName` (`ModelName`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COMMENT='报表导出模板表'

tm_persons20250212

{
  "message": "\u8868 tm_persons20250212 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250212` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

rp_vhsworkorderdetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_usermapdaily

{
  "message": "\u8868 home_usermapdaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdaily` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `Alng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `Alat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ServicerCnt` int(11) DEFAULT NULL COMMENT '覆盖人数',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=16639 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图日报'

tb_userworkphonedetail

{
  "message": "\u8868 tb_userworkphonedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphonedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WH)',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机主表ID(tb_userworkphoneinfo.Id)',
  `ConnectTime` datetime DEFAULT NULL COMMENT '沟通时间(通话/微信语音-[通话时间]、短信-[发送/接收时间]、微信-[最近沟通时间])',
  `ConnectInfo` int(11) DEFAULT NULL COMMENT '沟通情况(通话/微信语音-[通话时长(秒)]、微信-[聊天记录字符数])',
  `ConnectType` smallint(6) DEFAULT '0' COMMENT '沟通方式(0-无数据,1-呼入,2-呼出,3-接收,4-发送)',
  `ConnectStatus` smallint(6) DEFAULT '0' COMMENT '接通状态(0-无数据,1-接通,2-未接通)',
  `RecordDay` date DEFAULT NULL COMMENT '微信记录日期',
  `RecordTime` int(11) DEFAULT NULL COMMENT '微信记录时间(1[0:00:00~5:59:59];2[6:00:00~11:59:59];3[12:00:00~17:59:59];4[18:00:00~23:59:59])',
  `ChatHistory` json DEFAULT NULL COMMENT '聊天记录Json',
  `DataInfo` text COMMENT '数据信息(短信内容)',
  `Url` varchar(500) DEFAULT NULL COMMENT '附件链接',
  `ExternalId` varchar(100) DEFAULT NULL COMMENT '外部id',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/数据同步时间',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `DeletedAt` datetime DEFAULT NULL COMMENT '删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0:否,1:是)',
  PRIMARY KEY (`Id`),
  KEY `CreatedAt` (`CreatedAt`),
  KEY `RecordTime` (`RecordTime`),
  KEY `RecordDay` (`RecordDay`),
  KEY `ConnectTime` (`ConnectTime`),
  KEY `ConnectStatus` (`ConnectStatus`),
  KEY `ExternalId` (`ExternalId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机沟通信息冗余表'

rp_vhsworkorderinfodetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workfeeitem

{
  "indexes": {
    "NON-FeePurpose": {
      "message": "\u7d22\u5f15 NON-FeePurpose \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_delorderid

{
  "columns": {
    "remark": {
      "message": "\u5217 remark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderusedcarcheck2

{
  "message": "\u8868 vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

vi_datalastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

de_xichashiti

{
  "columns": {
    "testJson": {
      "message": "\u5217 testJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_chpworkbussinessjsoninfo

{
  "message": "\u8868 tb_chpworkbussinessjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_chpworkbussinessjsoninfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `BussinessJson` json DEFAULT NULL COMMENT '处理人信息JSON',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  `LastUpdateTimeStamp` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  `v_chpWXAddProgress` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpWXAddProgress'))) VIRTUAL COMMENT '(CHP)车主微信添加进度',
  `v_chpCarUserName` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserName'))) VIRTUAL COMMENT '(CHP)车主姓名',
  `v_chpCarUserTel` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserTel'))) VIRTUAL COMMENT '(CHP)车主电话',
  `v_chpSurveyInstallType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.InstallType'))) VIRTUAL COMMENT '(CHP)安装方式',
  `v_chpElectricityMetersType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.ElectricityMetersType'))) VIRTUAL COMMENT '(CHP)电表类型',
  `v_chpFirstContactRole` smallint(6) GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')) = _utf8mb4''),0,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')))) VIRTUAL COMMENT '(CHP)首联人角色(1-运营,2-服务人员)',
  `v_chpNextFollowTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4''),NULL,if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime'))))) VIRTUAL COMMENT '(CHP)下次跟进时间',
  `v_chpCarVinNumber` varchar(100) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarVinNumber'))) VIRTUAL COMMENT '(CHP)车架号',
  `v_ChpLineActualUsage` int(11) GENERATED ALWAYS AS ((if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage'))) + if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage'))))) VIRTUAL COMMENT '(CHP)线缆实际用量(电缆硬线+电缆软线实际用量)',
  `v_chpFactoryBrand` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFactoryBrand'))) VIRTUAL COMMENT '(CHP)主机厂品牌',
  `v_chpActualSolutionCode` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpActualSolutionCode'))) VIRTUAL COMMENT '(CHP)实际处理方案Code',
  `v_chpOrderCompleteTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')))) VIRTUAL COMMENT '(CHP)工单完成时间',
  PRIMARY KEY (`Id`,`DynamicId`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-DynamicId` (`DynamicId`) USING BTREE,
  KEY `NON-LastUpdateTimeStamp` (`LastUpdateTimeStamp`),
  KEY `NON-v_chpWXAddProgress` (`v_chpWXAddProgress`) USING BTREE,
  KEY `NON-v_chpCarUserName` (`v_chpCarUserName`) USING BTREE,
  KEY `NON-v_chpCarUserTel` (`v_chpCarUserTel`) USING BTREE,
  KEY `NON-v_chpSurveyInstallType` (`v_chpSurveyInstallType`) USING BTREE,
  KEY `NON-v_chpElectricityMetersType` (`v_chpElectricityMetersType`) USING BTREE,
  KEY `NON-v_chpFirstContactRole` (`v_chpFirstContactRole`) USING BTREE,
  KEY `NON-v_chpNextFollowTime` (`v_chpNextFollowTime`) USING BTREE,
  KEY `NON-v_chpCarVinNumber` (`v_chpCarVinNumber`) USING BTREE,
  KEY `NON-v_chpFactoryBrand` (`v_chpFactoryBrand`) USING BTREE,
  KEY `NON-v_chpActualSolutionCode` (`v_chpActualSolutionCode`) USING BTREE,
  KEY `NON-chpOrderCompleteTime` (`v_chpOrderCompleteTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4131 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='业务域_工单业务信息JOSN冗余表(CHP)'

workflowrelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowruntimestatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_userworkphoneinfo

{
  "message": "\u8868 tb_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `WXPhoneInfoId` varchar(12) DEFAULT NULL COMMENT '微信语音绑定微信聊天记录ID(tb_userworkphoneinfo.Id)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`),
  KEY `WXPhoneInfoId` (`WXPhoneInfoId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

teststruct

{
  "message": "\u8868 teststruct \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `teststruct` (
  `TABLE_CATALOG` text,
  `TABLE_SCHEMA` text,
  `TABLE_NAME` text,
  `COLUMN_NAME` text,
  `ORDINAL_POSITION` int(11) DEFAULT NULL,
  `COLUMN_DEFAULT` int(11) DEFAULT NULL,
  `IS_NULLABLE` text,
  `DATA_TYPE` text,
  `CHARACTER_MAXIMUM_LENGTH` double DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` double DEFAULT NULL,
  `NUMERIC_PRECISION` int(11) DEFAULT NULL,
  `NUMERIC_SCALE` int(11) DEFAULT NULL,
  `DATETIME_PRECISION` int(11) DEFAULT NULL,
  `CHARACTER_SET_NAME` text,
  `COLLATION_NAME` text,
  `COLUMN_TYPE` text,
  `COLUMN_KEY` text,
  `EXTRA` text,
  `PRIVILEGES` text,
  `COLUMN_COMMENT` text,
  `GENERATION_EXPRESSION` text,
  `SRS_ID` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

事务、沟通、会议任务工时明细

{
  "message": "\u8868 \u4e8b\u52a1\u3001\u6c9f\u901a\u3001\u4f1a\u8bae\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `事务、沟通、会议任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

move_hisworkorderinfo

{
  "message": "\u8868 move_hisworkorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `move_hisworkorderinfo`;

workflownodecommentactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_userclockin_log

{
  "message": "\u8868 tb_userclockin_log \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockin_log` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `StartTime` datetime DEFAULT NULL COMMENT '上班时间',
  `EndTime` datetime DEFAULT NULL COMMENT '下班时间',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-StartTime` (`StartTime`) USING BTREE,
  KEY `NON-EndTime` (`EndTime`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=418115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡日志表(31天)'

vvi_workorderauditinfoforafc

{
  "message": "\u8868 vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

tb_chpworkorderinfo

{
  "columns": {
    "Distance": {
      "type": {
        "source": "decimal(18,1)",
        "target": "varchar(255)"
      }
    },
    "LastAuditRejectRemark": {
      "message": "\u5217 LastAuditRejectRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastUpdateTimeStamp": {
      "message": "\u5217 LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-LastUpdateTimeStamp": {
      "message": "\u7d22\u5f15 NON-LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_completerate

{
  "message": "\u8868 home_completerate \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_completerate` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `7CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '7日内完成单量',
  `15CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '15日内完成单量',
  `30CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '30日内完成单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_工单完成率'

basic_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowrelatedactors_bak

{
  "message": "\u8868 workflowrelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowrelatedactors_bak`;

check_workflowjsonexclude

{
  "message": "\u8868 check_workflowjsonexclude \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsonexclude` (
  `WorkOrderId` char(12) NOT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`WorkOrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=49 ROW_FORMAT=DYNAMIC COMMENT='工作流冗余数据排除单据'

common_ruleactionlog

{
  "message": "\u8868 common_ruleactionlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `common_ruleactionlog` (
  `Id` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键ID(AL)',
  `TargetId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '业务Id(tb_workorderinfo.Id)',
  `InputParams` json DEFAULT NULL COMMENT '输入参数json',
  `OutParams` json DEFAULT NULL COMMENT '输出参数json',
  `SubRuleCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则编码(common_subruleinfo.SubRuleCode)',
  `SubRuleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则名称(common_subruleinfo.SubRuleName)',
  `RuleTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规则类别编码(basic_datadictionary.code)',
  `VersionIndex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本',
  `IsMatching` int(11) DEFAULT NULL COMMENT '是否匹配(1是 0否)',
  `ExceptionInfo` varchar(200) DEFAULT NULL COMMENT '异常信息',
  `MatchRulesJson` json DEFAULT NULL COMMENT '匹配条件Json',
  `ActionsJson` json DEFAULT NULL COMMENT '执行动作Json',
  `RuleMessageJson` json DEFAULT NULL COMMENT '规则报文json',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商Code',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-OrgCode` (`OrgCode`) USING BTREE,
  KEY `NON-TargetId` (`TargetId`) USING BTREE,
  KEY `NON-RuleTypeCode` (`RuleTypeCode`) USING BTREE,
  KEY `NON-SubRuleCode` (`SubRuleCode`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_规则操作日志表'

tb_workflowjsoninfo

{
  "columns": {
    "SourceMode": {
      "default": {
        "source": "1",
        "target": null
      }
    },
    "v_LastAddRecordTime": {
      "message": "\u5217 v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_LastAddRecordTime": {
      "message": "\u7d22\u5f15 NON-v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workfakeoffline

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_riskdatatime

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

flink_tablea

{
  "message": "\u8868 flink_tablea \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tablea`;

workflownodeactions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_userclockininfo

{
  "message": "\u8868 tmp_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL,
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工打卡设置信息表'

tmp_canaltest1

{
  "message": "\u8868 tmp_canaltest1 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest1`;

tb_afcreceiverecordinfo

{
  "message": "\u8868 tb_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcreceiverecordinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(RC)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL COMMENT '客户回款日期',
  `ReceivePrice` decimal(20,2) DEFAULT NULL COMMENT '客户回款金额',
  `ReceiveIssue` int(11) DEFAULT NULL COMMENT '客户回款期数',
  `ReceiveStatus` varchar(20) DEFAULT NULL COMMENT '状态描述',
  `ReceiveStatusRemark` varchar(50) DEFAULT NULL COMMENT '状态描述备注',
  `PersonAssess` tinyint(4) DEFAULT NULL COMMENT '人员考核(0-否,1-是)',
  `ProAssess` tinyint(4) DEFAULT NULL COMMENT '省份考核(0-否,1-是)',
  `AddRemark1` varchar(200) DEFAULT NULL COMMENT '补充描述1',
  `AddRemark2` varchar(200) DEFAULT NULL COMMENT '补充描述2',
  `PromptMerits` decimal(20,2) DEFAULT NULL COMMENT '协催绩效',
  `SettleTime` datetime DEFAULT NULL COMMENT '结算时间',
  `SettleRemark` int(11) DEFAULT NULL COMMENT '结算备注(0-正常结算,1-超期还款,2-结清/交车,3-项目对账)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdateById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '运营登记日期',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ReceiveTime` (`ReceiveDate`) USING BTREE,
  KEY `NON-ReceiveStatus` (`ReceiveStatus`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-UpdatedAt` (`UpdatedAt`) USING BTREE,
  KEY `NON-SettleTime` (`SettleTime`),
  KEY `NON-SettleRemark` (`SettleRemark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融运营回款信息'

tmp_districtyx

{
  "message": "\u8868 tmp_districtyx \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_district_bak_a

{
  "message": "\u8868 basic_district_bak_a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_district_bak_a`;

tb_remarkinfo

{
  "indexes": {
    "NON-RemarkTime": {
      "message": "\u7d22\u5f15 NON-RemarkTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workfixgoodsdetail

{
  "columns": {
    "IsLoss": {
      "message": "\u5217 IsLoss \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_flowstatus

{
  "message": "\u8868 tm_flowstatus \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_flowstatus` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ItemCode` varchar(50) DEFAULT NULL,
  `ItemName` varchar(50) DEFAULT NULL,
  `NodeCode` varchar(50) DEFAULT NULL,
  `NodeName` varchar(50) DEFAULT NULL,
  `StatusName` varchar(50) DEFAULT NULL,
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`Id`),
  KEY `NON-ItemName` (`ItemName`),
  KEY `NON-NodeName` (`NodeName`),
  KEY `NON-StatusName` (`StatusName`)
) ENGINE=InnoDB AUTO_INCREMENT=577 DEFAULT CHARSET=utf8 COMMENT='各工作流中各步骤与状态取值对应关系表'

workflownodestepconditions_bak

{
  "message": "\u8868 workflownodestepconditions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodestepconditions_bak`;

tmp_aes_encrypt

{
  "message": "\u8868 tmp_aes_encrypt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_aes_encrypt` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `NUM` varbinary(100) DEFAULT NULL,
  `num1` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

tb_userclockindeviceinfo

{
  "message": "\u8868 tb_userclockindeviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockindeviceinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(100) DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `VisitorRole` varchar(50) DEFAULT NULL COMMENT '角色',
  `InstitutionName` varchar(100) DEFAULT NULL COMMENT '部门',
  `ProCode` varchar(20) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(20) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '区域名称',
  `Address` varchar(500) DEFAULT NULL COMMENT '详细地址',
  `ClockInDate` date NOT NULL COMMENT '打卡日期',
  `ClockInTime` time NOT NULL COMMENT '打卡时间',
  `ClockInLng` varchar(20) DEFAULT NULL COMMENT '打卡经度',
  `ClockInLat` varchar(50) DEFAULT NULL COMMENT '打卡纬度',
  `ClockInAddress` varchar(200) DEFAULT NULL COMMENT '打卡地址',
  `InsertTime` datetime(6) DEFAULT NULL,
  `Deleted` smallint(6) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-ClockInDate` (`ClockInDate`) USING BTREE,
  KEY `NON-ClockInTime` (`ClockInTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-ProCode` (`ProCode`) USING BTREE,
  KEY `NON-CityCode` (`CityCode`) USING BTREE,
  KEY `NON-AreaCode` (`AreaCode`) USING BTREE,
  KEY `NON-ProName` (`ProName`) USING BTREE,
  KEY `NON-CityName` (`CityName`) USING BTREE,
  KEY `NON-AreaName` (`AreaName`) USING BTREE,
  KEY `NON-ClockInLng` (`ClockInLng`) USING BTREE,
  KEY `NON-ClockInLat` (`ClockInLat`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=213 ROW_FORMAT=DYNAMIC COMMENT='用户下班打卡信息表'

rp_workordercount

{
  "indexes": {
    "NON-ArtificialServicePriceName": {
      "message": "\u7d22\u5f15 NON-ArtificialServicePriceName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

job

{
  "message": "\u8868 job \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `job` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `StateId` int(11) DEFAULT NULL,
  `StateName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InvocationData` longtext NOT NULL,
  `Arguments` longtext NOT NULL,
  `CreatedAt` datetime(6) NOT NULL,
  `ExpireAt` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Job_StateName` (`StateName`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

de_testuser20240327101659637

{
  "message": "\u8868 de_testuser20240327101659637 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser20240327101659637` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

tb_riskhistoryorder

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

workflowruntimereminderlogs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderlistforafc

{
  "message": "\u8868 vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

de_tb_merchant

{
  "message": "\u8868 de_tb_merchant \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

tm_appcode

{
  "message": "\u8868 tm_appcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_appcode` (
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`appcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=36 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

basic_workflowstatus_bak

{
  "message": "\u8868 basic_workflowstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak`;

tm_vi_workstepinfo_2021

{
  "message": "\u8868 tm_vi_workstepinfo_2021 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_vi_workstepinfo_2021`;

tm_updatepropertycode20210923

{
  "message": "\u8868 tm_updatepropertycode20210923 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_updatepropertycode20210923`;

workflowruntimecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_prepaymentorderinfo

{
  "message": "\u8868 tb_prepaymentorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tb_prepaymentorderinfo`;

workflownodeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_afcworkorderdetailforexport

{
  "message": "\u8868 vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

tb_invoiceinfo

{
  "columns": {
    "Company": {
      "message": "\u5217 Company \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Conpany": {
      "message": "\u5217 Conpany \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "MainId": {
      "message": "\u5217 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "MainId": {
      "message": "\u7d22\u5f15 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_invoiceinfo` DROP COLUMN `MainId`;
ALTER TABLE `tb_invoiceinfo` DROP COLUMN `Conpany`;
ALTER TABLE `tb_invoiceinfo` DROP INDEX `MainId`;

tb_exportlog

{
  "columns": {
    "ExpStatus": {
      "message": "\u5217 ExpStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ExportCode": {
      "message": "\u7d22\u5f15 NON-ExportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_usermapdetail

{
  "message": "\u8868 home_usermapdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdetail` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-OrderTypeName` (`OrderTypeName`)
) ENGINE=InnoDB AUTO_INCREMENT=795635 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图明细'

vi_workorderteardetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

serviceinfodetail

{
  "message": "\u8868 serviceinfodetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfodetail` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

tb_workcarinfo

{
  "indexes": {
    "NON-PlateColor": {
      "message": "\u7d22\u5f15 NON-PlateColor \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workcarinfo` DROP INDEX `NON-PlateColor`;

workflownodes_bak

{
  "message": "\u8868 workflownodes_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodes_bak`;

tb_workgoodsinfo

{
  "columns": {
    "ExtraJson": {
      "message": "\u5217 ExtraJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallFailReason": {
      "message": "\u5217 InstallFailReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallResult": {
      "message": "\u5217 InstallResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_ChargerType": {
      "message": "\u5217 v_ChargerType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_Power": {
      "message": "\u5217 v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_Power": {
      "message": "\u7d22\u5f15 NON-v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarUserTel": {
      "message": "\u7d22\u5f15 NON-v_chpCarUserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_ordersearchproperty

{
  "columns": {
    "DataSourceJson": {
      "message": "\u5217 DataSourceJson \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "DataSourceJsons": {
      "message": "\u5217 DataSourceJsons \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Deleted": {
      "nullable": {
        "source": true,
        "target": false
      }
    }
  }
}

变更SQL:

ALTER TABLE `basic_ordersearchproperty` DROP COLUMN `DataSourceJson`;

tm_persons

{
  "message": "\u8868 tm_persons \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_userworkphoneinfo_backup

{
  "message": "\u8868 tb_userworkphoneinfo_backup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo_backup` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

vi_riskworkorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderinfo_mobile

{
  "message": "\u8868 vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

tb_afcnegotiationrecordinfo

{
  "columns": {
    "ConnectChannel": {
      "message": "\u5217 ConnectChannel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserName": {
      "message": "\u5217 UserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserTel": {
      "message": "\u5217 UserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "VisitorTel": {
      "message": "\u5217 VisitorTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxCode": {
      "message": "\u5217 WxCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxRemark": {
      "message": "\u5217 WxRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimeactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_usermapsummary

{
  "message": "\u8868 tm_usermapsummary \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_usermapsummary` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `1` (`AreaCode`),
  KEY `2` (`AreaType`),
  KEY `3` (`OrderTypeName`),
  KEY `4` (`ProviderCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='智能工单大屏_服务人员地图明细'

home_usercount

{
  "message": "\u8868 home_usercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AreaCnt` int(11) NOT NULL DEFAULT '0' COMMENT '区域覆盖人数',
  `CoverCnt` int(11) NOT NULL DEFAULT '0' COMMENT '实际施工人数',
  `ActiveRate` int(11) DEFAULT NULL COMMENT '活跃率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=1280 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_人员信息'

tb_workbussinessjsoninfo

{
  "columns": {
    "LastUpdateTimeStamp": {
      "default": {
        "source": "CURRENT_TIMESTAMP",
        "target": "CURRENT_TIMESTAMP(3)"
      },
      "extra": {
        "source": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP",
        "target": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP(3)"
      },
      "type": {
        "source": "timestamp",
        "target": "timestamp(3)"
      }
    },
    "v_CustomerAuditStatus": {
      "message": "\u5217 v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_chpCarModel": {
      "message": "\u5217 v_chpCarModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_need_reinstall": {
      "message": "\u5217 v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireDeviceModel": {
      "message": "\u5217 v_tireDeviceModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInflationPosition": {
      "message": "\u5217 v_tireInflationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInspectedVehicleCount": {
      "message": "\u5217 v_tireInspectedVehicleCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInstallationMethod": {
      "message": "\u5217 v_tireInstallationMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIsSupplementaryOrder": {
      "message": "\u5217 v_tireIsSupplementaryOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIssueSummary": {
      "message": "\u5217 v_tireIssueSummary \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNeedOuterTireRemoval": {
      "message": "\u5217 v_tireNeedOuterTireRemoval \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNumber": {
      "message": "\u5217 v_tireNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePlateNumber": {
      "message": "\u5217 v_tirePlateNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePosition": {
      "message": "\u5217 v_tirePosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeReason": {
      "message": "\u5217 v_tirePositionChangeReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeSuggestion": {
      "message": "\u5217 v_tirePositionChangeSuggestion \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePressure": {
      "message": "\u5217 v_tirePressure \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalCount": {
      "message": "\u5217 v_tireRemovalCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalInstallationPosition": {
      "message": "\u5217 v_tireRemovalInstallationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalReason": {
      "message": "\u5217 v_tireRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeId": {
      "message": "\u5217 v_tireRepairTypeId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeName": {
      "message": "\u5217 v_tireRepairTypeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementReason": {
      "message": "\u5217 v_tireReplacementReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementRemovalReason": {
      "message": "\u5217 v_tireReplacementRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "UNI-WORKORDERID": {
      "message": "\u7ea6\u675f UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "NON-DynIsHelpers": {
      "message": "\u7d22\u5f15 NON-DynIsHelpers \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-DynVinNumber": {
      "message": "\u7d22\u5f15 NON-DynVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-chpOrderCompleteTime": {
      "message": "\u7d22\u5f15 NON-chpOrderCompleteTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CompleteAging": {
      "message": "\u7d22\u5f15 NON-v_CompleteAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CustomerAuditStatus": {
      "message": "\u7d22\u5f15 NON-v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OrderRelationId": {
      "message": "\u7d22\u5f15 NON-v_OrderRelationId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OutCardDate": {
      "message": "\u7d22\u5f15 NON-v_OutCardDate \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 NON-v_PostFillWorkOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotAging": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotResult": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitStatus": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitTime": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpActualSolutionCode": {
      "message": "\u7d22\u5f15 NON-v_chpActualSolutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarVinNumber": {
      "message": "\u7d22\u5f15 NON-v_chpCarVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpElectricityMetersType": {
      "message": "\u7d22\u5f15 NON-v_chpElectricityMetersType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpFactoryBrand": {
      "message": "\u7d22\u5f15 NON-v_chpFactoryBrand \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpNextFollowTime": {
      "message": "\u7d22\u5f15 NON-v_chpNextFollowTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpSurveyInstallType": {
      "message": "\u7d22\u5f15 NON-v_chpSurveyInstallType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_need_reinstall": {
      "message": "\u7d22\u5f15 NON-v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UNI-WORKORDERID": {
      "message": "\u7d22\u5f15 UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_OrderColor": {
      "message": "\u7d22\u5f15 v_OrderColor \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 v_PostFillWorkOrder \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_afcAuditPassTime": {
      "message": "\u7d22\u5f15 v_afcAuditPassTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `v_PostFillWorkOrder`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `UNI-WORKORDERID`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP CONSTRAINT `UNI-WORKORDERID`;

tm_workorder20250314

{
  "message": "\u8868 tm_workorder20250314 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_workorder20250314` (
  `工单编号` varchar(255) DEFAULT NULL,
  `省` varchar(255) DEFAULT NULL,
  `市` varchar(255) DEFAULT NULL,
  `区` varchar(255) DEFAULT NULL,
  `详细地址` varchar(255) DEFAULT NULL,
  `服务科目` varchar(255) DEFAULT NULL,
  `施工人(账号)` varchar(255) DEFAULT NULL,
  `施工人(姓名)` varchar(255) DEFAULT NULL,
  `电话` varchar(255) DEFAULT NULL,
  `工单提交时间` varchar(255) DEFAULT NULL,
  `施工完成时间` varchar(255) DEFAULT NULL,
  `工单状态` varchar(255) DEFAULT NULL,
  `服务商` varchar(255) DEFAULT NULL,
  `报表月份` varchar(255) DEFAULT NULL,
  `公司` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workorderoperationlog

{
  "message": "\u8868 tb_workorderoperationlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderoperationlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `MainId` varchar(50) DEFAULT NULL COMMENT '父表ID(tb_afcreceiverecordinfo.id,tb_userworkphoneinfo.Id,tb_userfeedetail.FeeGroupCode)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `LogType` int(11) NOT NULL COMMENT '日志类别(1-金融运营回款日志,2-工作手机信息匹配日志,3-充电桩团队管理人员费用信息修改日志,4-车电匹配失败(临时),5-团队管理变更日志)',
  `Object` varchar(50) DEFAULT NULL COMMENT '操作对象(回款登记/回款信息)',
  `OperCode` varchar(50) DEFAULT NULL COMMENT '操作人Code',
  `OperName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `Operation` varchar(50) DEFAULT NULL COMMENT '操作',
  `SummaryInfo` varchar(500) DEFAULT NULL COMMENT '日志汇总',
  `ExtraJson` json DEFAULT NULL COMMENT '其它补充信息',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间/操作时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-MainId` (`MainId`) USING BTREE,
  KEY `NON-LogType` (`LogType`) USING BTREE,
  KEY `NON-OperCode` (`OperCode`) USING BTREE,
  KEY `NON-OperName` (`OperName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=121230 DEFAULT CHARSET=utf8 COMMENT='通用操作日志表'

basic_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowhandlingstatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_riskworkorderinfo_other

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workjsoninfo

{
  "message": "\u8868 workjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `workjsoninfo` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsCustomer` tinyint(1) DEFAULT NULL,
  `CustCoopType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallTime` datetime DEFAULT NULL,
  `RequiredTime` datetime DEFAULT NULL,
  `LinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SourceType` smallint(6) DEFAULT NULL,
  `SecondLinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SecondLinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsUrgent` tinyint(1) DEFAULT NULL,
  `CustUniqueSign` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveTime` datetime DEFAULT NULL,
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveSuccessfulTime` datetime DEFAULT NULL,
  `CreatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) DEFAULT NULL,
  `AppointStatus` smallint(6) DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreateType` smallint(6) DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecCompleteTime` datetime DEFAULT NULL,
  `RecRecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecRecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfOrderCompletetime` datetime DEFAULT NULL,
  `WfAssignor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfDirectOrderAccept` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrTypeStatus` smallint(6) DEFAULT NULL,
  `WorkOdrCloseStatusName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrSuspendStatus` smallint(6) DEFAULT NULL,
  `WorkStatus` smallint(6) DEFAULT NULL,
  `WorkOdrClosedAt` datetime DEFAULT NULL,
  `AFCCreatedAt` datetime DEFAULT NULL,
  `AFCRetreatTime` datetime DEFAULT NULL,
  `AFCFollowFrequency` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AFCIfRemove` smallint(6) DEFAULT NULL,
  `AFCReturnedTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `VHSAppraisalStatus` smallint(6) DEFAULT NULL,
  `VHSReceiverLoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OperatingInfo` json DEFAULT NULL,
  `OperatedInfo` json DEFAULT NULL,
  `ServiceProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkflowInfo` json DEFAULT NULL,
  `WorkServiceSubject` json DEFAULT NULL,
  `AFCWorkFinanceRecord` json DEFAULT NULL,
  `AFCPaymentReport` json DEFAULT NULL,
  `VHSWorkFileReceiveInfo` json DEFAULT NULL,
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkAddressInfo` json DEFAULT NULL,
  `AFCLastNegotiatorTime` datetime DEFAULT NULL,
  `AFCFollowFrequencyType` smallint(6) DEFAULT NULL,
  `AFCCompleteType` smallint(6) DEFAULT NULL,
  `AFCReportDeadline` datetime DEFAULT NULL,
  `AFCUnFollowDays` bigint(20) DEFAULT NULL,
  `AFCAppointTime` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=2416 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=2684 ROW_FORMAT=DYNAMIC

flink_tableb

{
  "message": "\u8868 flink_tableb \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tableb`;

workflownodes

{
  "columns": {
    "DataDictionaryId": {
      "type": {
        "source": "varchar(36)",
        "target": "char(36)"
      }
    },
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_tablename

{
  "message": "\u8868 tmp_tablename \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename` (
  `tablename` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_districtyx1

{
  "message": "\u8868 tmp_districtyx1 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx1` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `省编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userruleinfo_serv

{
  "message": "\u8868 tb_userruleinfo_serv \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userruleinfo_serv` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `OrgCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserCenterId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '人员ID(tb_userinfo.UserCenterId)',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员登录名',
  `OrderType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `DistrictCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限内地区编码',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-DistrictCode` (`DistrictCode`),
  KEY `NON-LoginName` (`LoginName`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-OrgCode` (`OrgCode`),
  KEY `NON-UserCenterId` (`UserCenterId`)
) ENGINE=InnoDB AUTO_INCREMENT=2377 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_人员区域权限表'

tb_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

tmp_chpfixorder

{
  "message": "\u8868 tmp_chpfixorder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpfixorder` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderRemark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserTel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderCompleteTime` datetime DEFAULT NULL,
  `StoreCode` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `RecordPersonName` (`RecordPersonName`) USING BTREE,
  KEY `NON-OrderTypeName` (`OrderTypeName`) USING BTREE,
  KEY `ProName` (`ProName`) USING BTREE,
  KEY `StoreName` (`StoreName`) USING BTREE,
  KEY `SubjectName` (`SubjectName`) USING BTREE,
  KEY `CityName` (`CityName`) USING BTREE,
  KEY `CustomerId` (`CustomerId`) USING BTREE,
  KEY `AppCode` (`AppCode`) USING BTREE,
  KEY `AreaName` (`AreaName`) USING BTREE,
  KEY `SubjectCode` (`SubjectCode`) USING BTREE,
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `CustomerName` (`CustomerName`) USING BTREE,
  KEY `SettleName` (`SettleName`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=864 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='20231010\r\n导入充电桩私桩巡检虚拟数据864单'

common_propertymapping

{
  "columns": {
    "MappingPropertyCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_workorderrelation

{
  "columns": {
    "RelateNo": {
      "message": "\u5217 RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-RelateNo": {
      "message": "\u7d22\u5f15 NON-RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderfilmdetail_2

{
  "message": "\u8868 vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

阶段目标生产达成

{
  "message": "\u8868 \u9636\u6bb5\u76ee\u6807\u751f\u4ea7\u8fbe\u6210 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `阶段目标生产达成` (
  `研发生产目标模板-产品迭代优化/集成项目/客制化项目` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `阶段基线` varchar(255) DEFAULT NULL,
  `工时
(人天)` varchar(255) DEFAULT NULL,
  `交期
(YY-MM-DD)` varchar(255) DEFAULT NULL,
  `范围
(PRD版本/架构优化)` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowcompleterelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

有效任务工时明细

{
  "message": "\u8868 \u6709\u6548\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `有效任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL,
  `f13` varchar(255) DEFAULT NULL,
  `f14` varchar(255) DEFAULT NULL,
  `f15` varchar(255) DEFAULT NULL,
  `f16` varchar(255) DEFAULT NULL,
  `f17` varchar(255) DEFAULT NULL,
  `f18` varchar(255) DEFAULT NULL,
  `f19` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_formlastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

workflownodeactions_bak

{
  "message": "\u8868 workflownodeactions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactions_bak`;

tb_phoneorderrelation

{
  "message": "\u8868 tb_phoneorderrelation \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_phoneorderrelation` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机信息表ID(tb_userworkphoneinfo.Id)',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID(tb_workorderinfo.Id)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编号',
  `CustomerId` varchar(100) DEFAULT NULL COMMENT '工单客户ID',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '工单客户名称',
  `NegotiatorId` varchar(12) DEFAULT NULL COMMENT '谈判记录ID(tb_afcnegotiationrecordinfo.Id)',
  `NegotiatorTime` datetime DEFAULT NULL COMMENT '谈判记录生成时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NegotiatorId` (`NegotiatorId`),
  KEY `NegotiatorTime` (`NegotiatorTime`),
  KEY `PhoneInfoId` (`PhoneInfoId`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=2933 DEFAULT CHARSET=utf8 COMMENT='工作手机与工单关系表(匹配结果表)'

rp_chpworkorderdetail

{
  "message": "\u8868 rp_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_chpworkorderdetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `WorkOrderId` varchar(36) DEFAULT NULL COMMENT '工单ID',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编码',
  `OrderType` varchar(50) DEFAULT NULL,
  `SubjectNameSummary` varchar(100) DEFAULT NULL COMMENT '科目名称汇总',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `ProName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下单备注',
  `FirstConcatRole` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联人角色',
  `chpCarUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主姓名',
  `chpCarUserTel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主电话',
  `chpCarVinNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车架号',
  `IsWithPile` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '带桩上门',
  `IsSelfBuiltHouse` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否自建房',
  `CarParkin` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车位',
  `ProtectionBox` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '保护箱',
  `InstallType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装方式',
  `GetElectricityType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电方式',
  `Schedule` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '立表进度',
  `ElectricityMetersType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '电表类型',
  `PowerPointLocation` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电点位置',
  `WechatNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信号/群名',
  `chpWXAddProgress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信添加进度',
  `FirstContactRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联备注',
  `WorkStatusName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CurrentPerson` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '当前处理人',
  `SubmmitTime` datetime DEFAULT NULL COMMENT '工单提交时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `chpNextFollowTime` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `LastAppointStatus` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最新异常反馈类型',
  `LastFailAppointConcat` varchar(500) DEFAULT NULL COMMENT '最新异常反馈详情(取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间)',
  `AllFailAppointConcat` text COMMENT '异常反馈记录(按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间)',
  `SurveyTime` datetime DEFAULT NULL COMMENT '勘测完成时间',
  `CompleteTime` datetime DEFAULT NULL COMMENT '安装完成时间(安装)/施工完成时间(售后)',
  `ClosedAt` datetime DEFAULT NULL COMMENT '关闭时间',
  `AuditRejectRemark` text COMMENT '质检不通过备注(勘测、安装/售后)每次不通过的备注都放一起。',
  `AuditRejectNum` int(11) DEFAULT NULL COMMENT '质检驳回次数(勘测驳回+安装驳回/售后驳回的次数)',
  `LastAuditRejectTime` datetime DEFAULT NULL COMMENT '最新质检驳回时间',
  `AuditTime` datetime DEFAULT NULL COMMENT '(安装/售后)质检通过时间',
  `IsAddition` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否存在增项',
  `LastSurveyAuditCode` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人工号',
  `LastSurveyAuditName` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人姓名',
  `LastInstallAuditCode` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人工号',
  `LastInstallAuditName` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人姓名',
  `AdditionFeeSettleRoad` varchar(100) DEFAULT NULL COMMENT '增项结算路径',
  `AdditionFeePayTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '结算方式',
  `AdditionFeeChangeRemark` varchar(200) DEFAULT NULL COMMENT '增项结算修改原因',
  `AdditionFeeDetail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '增项明细',
  `AdditionFeePrice` decimal(18,5) DEFAULT NULL COMMENT '增项费(元)',
  `AdditionFeePaySource` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项付款方式',
  `AdditionFeeOfflinePayer` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项打款人',
  `AdditionFeePayTime` datetime DEFAULT NULL COMMENT '增项打款时间',
  `ServiceGoodsName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装服务商品',
  `ServiceGoodsPrice` decimal(18,5) DEFAULT NULL COMMENT '安装服务商品价格',
  `Power` decimal(18,1) DEFAULT NULL COMMENT '功率',
  `FirstPartySettleLength` varchar(50) DEFAULT NULL COMMENT '甲方结算套餐长度',
  `PackageLength` varchar(50) DEFAULT NULL COMMENT '车企套餐长度',
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '品牌',
  `chpBrandInfoURL` varchar(200) DEFAULT NULL COMMENT '品牌资料',
  `ProjectWarrantyPeriod` int(11) DEFAULT NULL COMMENT '工程质保期(年)',
  `SurveyName` varchar(45) DEFAULT NULL COMMENT '勘测人姓名',
  `Surveycode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测人账号',
  `InstallName` varchar(100) DEFAULT NULL COMMENT '安装人姓名(安装)/施工人姓名(售后)',
  `InstallCode` varchar(50) DEFAULT NULL COMMENT '安装人Code(安装)/施工人Code(售后)',
  `Distance` decimal(18,1) DEFAULT NULL COMMENT '单程服务距离(km)',
  `InstallAscription` varchar(50) DEFAULT NULL COMMENT '安装人员外勤属性(安装)/施工人属性(售后)',
  `FirstRecordTime` datetime DEFAULT NULL COMMENT '首次提交安装结果时间',
  `LastRecordTime` datetime DEFAULT NULL COMMENT '最新一次提交安装结果时间',
  `EmployeeAttributes` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装人员属性',
  `SurveyMethod` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测方式',
  `IndividualReason` varchar(200) DEFAULT NULL COMMENT '单独上门原因',
  `SurveyResult` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否继续安装',
  `ResultReason` varchar(200) DEFAULT NULL COMMENT '不安装原因',
  `SurveyRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测施工备注',
  `Seller` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '充电桩销售方',
  `GoodsName` varchar(50) DEFAULT NULL COMMENT '桩商品',
  `MaterialPrice` decimal(18,5) DEFAULT NULL COMMENT '桩价格',
  `GoodsSource` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '桩来源',
  `MaterialNo` varchar(50) DEFAULT NULL COMMENT '中瑞桩编码',
  `MaterialType` varchar(50) DEFAULT NULL COMMENT '充电桩类型',
  `EscrowMaterialType` varchar(50) DEFAULT NULL COMMENT '代管桩物料',
  `EscrowMaterialNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代管桩编码',
  `PileWarrantyPeriod` int(11) DEFAULT NULL COMMENT '电桩质保期(年)',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '充电桩出货仓库',
  `chpIsSelfWiring` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主是否自布线',
  `HardWire` text COMMENT '电缆硬线LM00008497(出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注)',
  `FlexibleCord` text COMMENT '电缆软线LM00008498',
  `Drivepipe` text COMMENT '套管LM00008502',
  `LeakageInsurance` text COMMENT '漏保LM00008500',
  `AirSwitchBox` text COMMENT '空开盒LM00008501',
  `ChargingPileColumn` text COMMENT '立柱LM00008499',
  `chpInstallRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装施工备注',
  `chpNextFollow` varchar(500) DEFAULT NULL COMMENT '安装后跟进记录',
  `CreatedAt` datetime DEFAULT NULL COMMENT '建单时间',
  `FirstConcatPersonCode` varchar(50) DEFAULT NULL COMMENT '首联人code',
  `FirstConcatPersonName` varchar(100) DEFAULT NULL COMMENT '首联人name',
  `FirstConcatTime` datetime DEFAULT NULL COMMENT '首联人时间',
  `ChpLineActualUsage` int(11) DEFAULT NULL COMMENT '线缆实际用量(电缆硬线+电缆软线实际用量)',
  `chpGoodsPackageSubsidyPrice` decimal(18,4) DEFAULT NULL COMMENT '充电桩补贴套餐价格)',
  `LastApplyReason` varchar(200) DEFAULT NULL COMMENT '最新异常反馈的申请原因',
  `chpCarModel` varchar(200) DEFAULT NULL COMMENT '车型(售后)',
  `chpProModel` varchar(200) DEFAULT NULL COMMENT '产品型号(售后)',
  `chpChargerNo` varchar(200) DEFAULT NULL COMMENT '桩编号(售后)',
  `chpOriginalInstallPerson` varchar(200) DEFAULT NULL COMMENT '原施工人(售后)',
  `chpFactoryBrand` varchar(200) DEFAULT NULL COMMENT '主机厂品牌(售后)',
  `chpProblemDescription` varchar(600) DEFAULT NULL COMMENT '问题描述(售后)',
  `chpFaulttime` varchar(200) DEFAULT NULL COMMENT '故障时间(售后)',
  `chpFaultClass` varchar(200) DEFAULT NULL COMMENT '故障分类(售后)',
  `chpSuggestedSolution` varchar(600) DEFAULT NULL COMMENT '建议解决方案(售后)',
  `chpWarrantyStatus` varchar(60) DEFAULT NULL COMMENT '保修状态(售后)',
  `chpActualSolutionName` varchar(1000) DEFAULT NULL COMMENT '实际处理方案(实际处理方案为其它时展示详细处理信息)(售后)',
  `chpIfCharge` varchar(60) DEFAULT NULL COMMENT '是否收费(售后)',
  `chpAfterSaleRemark` varchar(600) DEFAULT NULL COMMENT '施工备注(售后)',
  `chpLogisticsNum` varchar(100) DEFAULT NULL COMMENT '物流单号(售后)',
  `chpShippingWarehouse` varchar(200) DEFAULT NULL COMMENT '出货仓库(售后)',
  `chpWarehouseMaterials` text COMMENT '所用物料(拼接)(售后)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  `chpMaterialSN` varchar(100) DEFAULT NULL COMMENT '故障物料SN',
  `chpWorkerSettlePrice` varchar(50) DEFAULT NULL COMMENT '优工结算价(总价)',
  `chpWorkerSettlementMethod` varchar(50) DEFAULT NULL COMMENT '客户结算价',
  `chpWorkerFeeRemark` varchar(500) DEFAULT NULL COMMENT '备注-操作人/操作时间',
  `chpInstallConditionDate` date DEFAULT NULL COMMENT '具备安装条件日期',
  `chpPileInventoryResults` varchar(50) DEFAULT NULL COMMENT '桩盘点结果',
  `chpColumnInventoryResults` varchar(50) DEFAULT NULL COMMENT '立柱盘点结果',
  `AdditionFeeCommissionRatio` varchar(50) DEFAULT NULL COMMENT '增项费分佣比例(%)',
  `AllSubsidy` decimal(20,2) DEFAULT NULL COMMENT '总费用',
  `InstallPriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-安装',
  `AfterSalePriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-售后',
  `ChargingPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '公桩计件(申请)',
  `LeakageInsuranceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '漏保补贴',
  `GalvanizedPipeSubsidy` decimal(20,2) DEFAULT NULL COMMENT '镀锌管补贴',
  `AdditionSubsidy` decimal(20,2) DEFAULT NULL COMMENT '增项',
  `LineSubsidy` decimal(20,2) DEFAULT NULL COMMENT '电缆补贴',
  `RemoteSubsidy` decimal(20,2) DEFAULT NULL COMMENT '远补',
  `CarSubsidy` decimal(20,2) DEFAULT NULL COMMENT '用车补贴',
  `BonusSubsidy` decimal(20,2) DEFAULT NULL COMMENT '奖金',
  `DifferenceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '差异补发',
  `ComplaintDeduction` decimal(20,2) DEFAULT NULL COMMENT '客诉扣款',
  `DifferenceDeduction` decimal(20,2) DEFAULT NULL COMMENT '差异扣除',
  `chpPilesNum` int(11) DEFAULT NULL COMMENT '(充电桩)桩数量',
  `chpGunsNum` int(11) DEFAULT NULL COMMENT '(充电桩)枪数量',
  `chpParkSpaceNum` int(11) DEFAULT NULL COMMENT '(充电桩)车位数量',
  `DispatchTime` datetime DEFAULT NULL COMMENT '勘测调度完成时间/调度完成时间',
  `CustomerAuditApprovalTime` datetime DEFAULT NULL COMMENT '客户审核通过时间',
  `chpOrderSource` varchar(50) DEFAULT NULL COMMENT '(充电桩)订单来源',
  `CurrentPersonCode` varchar(50) DEFAULT NULL COMMENT '当前处理人编号',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-CreatedAt` (`CreatedAt` DESC)
) ENGINE=InnoDB AUTO_INCREMENT=19432 DEFAULT CHARSET=utf8 COMMENT='充电桩已完成工单明细表'

basic_resourceitem

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_userarea

{
  "message": "\u8868 tm_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProCode` varchar(50) DEFAULT NULL COMMENT '省份Code',
  `AreaCnt` int(11) DEFAULT NULL COMMENT '区域覆盖人数',
  PRIMARY KEY (`Id`),
  KEY `1` (`ProviderCode`),
  KEY `2` (`ProCode`)
) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8

tb_wxuserinfo

{
  "message": "\u8868 tb_wxuserinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_wxuserinfo` (
  `WxId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键(WxId,安米无微信ID,数据同微信号)',
  `DataSource` smallint(6) NOT NULL DEFAULT '0' COMMENT '来源(1-云客,2-安米)',
  `WxCode` varchar(50) DEFAULT NULL COMMENT '微信号',
  `WxName` varchar(50) DEFAULT NULL COMMENT '微信昵称',
  `WxHead` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '微信头像URL',
  `WxNameRemark` varchar(100) DEFAULT NULL COMMENT '微信备注名',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserType` smallint(6) DEFAULT NULL COMMENT '类型(1-员工,2-客户(员工好友),3-群,4-群成员)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`WxId`,`DataSource`),
  KEY `UserType` (`UserType`),
  KEY `LoginName` (`LoginName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员微信信息表'

tmp_dists

{
  "message": "\u8868 tmp_dists \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_dists` (
  `lv3code` varchar(255) DEFAULT NULL,
  `lv3name` varchar(255) DEFAULT NULL,
  `zr3code` varchar(255) DEFAULT NULL,
  `zr3name` varchar(255) DEFAULT NULL,
  `zr2code` varchar(255) DEFAULT NULL,
  `zr2name` varchar(255) DEFAULT NULL,
  `zr1code` varchar(255) DEFAULT NULL,
  `lv1name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workauditphotoinfo

{
  "message": "\u8868 tb_workauditphotoinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workauditphotoinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `AuditPhotoType` smallint(6) DEFAULT NULL COMMENT '质检照片类型:1.人车合影照片;2.三合一照片;3.安装远照(设备0059);4.安装近照(设备0059);5.环境照片;',
  `AuditPhotoRule` varchar(200) DEFAULT NULL COMMENT '质检照片类型识别规则',
  `AuditStatus` smallint(6) DEFAULT NULL COMMENT '质检状态:0.未通过;1.已通过;',
  `ResourceId` char(12) DEFAULT NULL COMMENT '资源表Id(basic_resourceitem.Id)',
  `AuditRemark` varchar(50) DEFAULT NULL COMMENT '质检备注',
  `IsAuditError` smallint(6) DEFAULT NULL COMMENT '是否质检系统识别有误:0.否;1.是;',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ResourceId` (`ResourceId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='业务域_自动质检图片信息'

move_workorder2023

{
  "columns": {
    "IsConsume": {
      "message": "\u5217 IsConsume \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "1": {
      "message": "\u7d22\u5f15 1 \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-BatchNo": {
      "message": "\u7d22\u5f15 NON-BatchNo \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `move_workorder2023` DROP COLUMN `IsConsume`;
ALTER TABLE `move_workorder2023` DROP INDEX `NON-BatchNo`;

home_ordercusttrend

{
  "message": "\u8868 home_ordercusttrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_TOP3客户下单量趋势'

serviceinfo

{
  "message": "\u8868 serviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8

basic_orgroleinfo

{
  "columns": {
    "ApiPermission": {
      "message": "\u5217 ApiPermission \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_afcsecondvisitinfo

{
  "message": "\u8868 tb_afcsecondvisitinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcsecondvisitinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(SV)',
  `WorkOrderId` varchar(20) DEFAULT NULL COMMENT '工单ID',
  `InitiatorCode` varchar(50) DEFAULT NULL COMMENT '发起人Code',
  `InitiatorName` varchar(100) DEFAULT NULL COMMENT '发起人Name',
  `InitiateTime` datetime DEFAULT NULL COMMENT '发起时间',
  `InitiateRemark` varchar(2000) DEFAULT NULL COMMENT '发起原因',
  `SubmitType` smallint(6) DEFAULT NULL COMMENT '二访保存状态(0保存,1提交)',
  `SubmitterCode` varchar(50) DEFAULT NULL COMMENT '提交人Code',
  `SubmitterName` varchar(100) DEFAULT NULL COMMENT '提交人Name',
  `SubmitStatus` smallint(6) DEFAULT '0' COMMENT '确认二访(0-无操作,1-确认,2-拒绝)',
  `SubmitTime` datetime DEFAULT NULL COMMENT '提交时间',
  `SubmitRemark` varchar(2000) DEFAULT NULL COMMENT '提交备注',
  `RejectReason` varchar(2000) DEFAULT NULL COMMENT '拒绝原因',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融二访信息'

tmp_chprporderid

{
  "message": "\u8868 tmp_chprporderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprporderid` (
  `WorkOrderId` varchar(12) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`WorkOrderId`),
  KEY `WorkStatus` (`WorkStatus`) USING BTREE,
  KEY `Result` (`Result`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩明细表导出工单ID及批次(即用即删)_长期表'

rp_afcworkorderdetail

{
  "columns": {
    "AccommodateSign": {
      "message": "\u5217 AccommodateSign \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimbursableDistance": {
      "type": {
        "source": "decimal(18,2)",
        "target": "varchar(500)"
      }
    },
    "AuditStatus": {
      "message": "\u5217 AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeRemark": {
      "message": "\u5217 FeeRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FindWho": {
      "message": "\u5217 FindWho \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OverdueGrade": {
      "message": "\u5217 OverdueGrade \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnCountReward": {
      "message": "\u5217 ReturnCountReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnPriceReward": {
      "message": "\u5217 ReturnPriceReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondLinkMan": {
      "message": "\u5217 SecondLinkMan \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondVisitStatus": {
      "message": "\u5217 SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "NON-WorkOrderId": {
      "message": "\u7ea6\u675f NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderswitchdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

workflowruntimedelegatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

slow1114

{
  "message": "\u8868 slow1114 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1114` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tm_resource

{
  "message": "\u8868 tm_resource \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_resource` (
  `resourceid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `workorderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `resourcename` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `URL` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`resourceid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

tmp_zhusuwei

{
  "message": "\u8868 tmp_zhusuwei \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_zhusuwei` (
  `省份` varchar(255) DEFAULT NULL,
  `父级` varchar(255) DEFAULT NULL,
  `城市` varchar(255) DEFAULT NULL,
  `汇总的` varchar(255) DEFAULT NULL,
  `城市等级` varchar(255) DEFAULT NULL,
  `职等信息` varchar(255) DEFAULT NULL,
  `金额` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_vhsworkorderinfo

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

slow918

{
  "message": "\u8868 slow918 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow918` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count911` int(11) DEFAULT NULL,
  `count918` int(11) DEFAULT NULL,
  `countminus` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userdetail

{
  "indexes": {
    "NON-AffiliatedInstitution": {
      "message": "\u7d22\u5f15 NON-AffiliatedInstitution \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_userinfo20210727

{
  "message": "\u8868 tm_userinfo20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfo20210727`;

z_qianyi

{
  "message": "\u8868 z_qianyi \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `z_qianyi` (
  `table_name` varchar(200) NOT NULL,
  `table_comment` varchar(200) DEFAULT NULL,
  `rows` int(11) DEFAULT NULL,
  `remark` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tm_main

{
  "message": "\u8868 tm_main \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_main`;

vi_vhsworkedorderinfo

{
  "columns": {
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

slow1119

{
  "message": "\u8868 slow1119 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1119` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_ordercount

{
  "message": "\u8868 home_ordercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `FinishedCnt` int(11) NOT NULL DEFAULT '0' COMMENT '完单量',
  `FinishedRate` int(11) DEFAULT NULL COMMENT '完单率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=20649 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_单据信息'

tb_importlog

{
  "indexes": {
    "NON-ImportCode": {
      "message": "\u7d22\u5f15 NON-ImportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_workimp

{
  "message": "\u8868 tmp_workimp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp` (
  `ordertype` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `classname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `appcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `custname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `storename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `settlename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `brandname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `proname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `cityname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `areaname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusername` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusertel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `installperson` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL COMMENT '工单提交时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

columnss

{
  "message": "\u8868 columnss \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `columnss` (
  `columnsss` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_workorderacceptinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_riskworkorderinfo_other1

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_persons20250304

{
  "message": "\u8868 tm_persons20250304 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250304` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_workaddressinfo

{
  "indexes": {
    "NON-Address": {
      "message": "\u7d22\u5f15 NON-Address \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workfeeinfo

{
  "columns": {
    "IsAddition": {
      "message": "\u5217 IsAddition \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "PrePaymentOrderNo": {
      "message": "\u7d22\u5f15 PrePaymentOrderNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workfeeinfo` DROP COLUMN `IsAddition`;

vi_workresourceinfo

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderfixdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

vi_workingorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderlistforchp

{
  "message": "\u8868 vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

home_completebaseinfo

{
  "indexes": {
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workflowrestartlog

{
  "message": "\u8868 tb_workflowrestartlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workflowrestartlog` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(15) DEFAULT NULL COMMENT '工单ID',
  `RestartType` int(11) DEFAULT NULL COMMENT '事件类型',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(20) DEFAULT NULL COMMENT '工单类型',
  `CreatedAt` datetime(3) DEFAULT NULL COMMENT '数据创建时间',
  `Num` int(11) DEFAULT '0' COMMENT '重试次数',
  `LastRestartTime` datetime(3) DEFAULT NULL COMMENT '上次重试时间',
  `OtherData` text COMMENT '附加数据',
  `Remark` text COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `WorkOrderId` (`WorkOrderId`),
  KEY `Num` (`Num`),
  KEY `CreatedAt` (`CreatedAt`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='作流外挂接口执行失败重试日志'

home_orderdetaildaily

{
  "message": "\u8868 home_orderdetaildaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_orderdetaildaily` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DetailType` smallint(6) DEFAULT NULL COMMENT '明细类型(1下单时间2首次接单时间3下单成功时间4首次提交结果时间\n5最后一次提交结果时间6首次质检时间7工单质检时间8质检驳回时间9首次质检即通过10工单完成时间11工单关闭时间)',
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单Id',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ServiceId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Id',
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Code',
  `ServiceName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员姓名',
  `DetailTime` datetime DEFAULT NULL COMMENT '明细事件时间',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '查询日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_ServiceCode` (`ServiceCode`),
  KEY `UNI-DetailWorkId` (`DetailType`,`WorkOrderId`),
  KEY `NON_AreaCode` (`AreaCode`),
  KEY `NON_ProCode` (`ProCode`),
  KEY `NON_ServiceId` (`ServiceId`),
  KEY `NON_DetailType` (`DetailType`),
  KEY `NON_ProviderCode` (`ProviderCode`),
  KEY `NON_WorkOrderId` (`WorkOrderId`),
  KEY `NON_CustomerName` (`CustomerName`),
  KEY `NON_CityCode` (`CityCode`),
  KEY `NON_OrderType` (`OrderType`),
  KEY `NON_CheckDate` (`CheckDate`),
  KEY `NON_DetailTime` (`DetailTime`),
  KEY `NON_CustomerId` (`CustomerId`)
) ENGINE=InnoDB AUTO_INCREMENT=107630197 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_每日工单明细'

tmp_chpresourcedetail

{
  "message": "\u8868 tmp_chpresourcedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpresourcedetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `SourceType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件类型',
  `FileName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
  `Url` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '链接',
  `CreatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩导出附件临时表'

changhe

{
  "message": "\u8868 changhe \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `changhe` (
  `结算单位` varchar(255) DEFAULT NULL,
  `结算属性` varchar(255) DEFAULT NULL,
  `商品名称` varchar(255) DEFAULT NULL,
  `类型` varchar(255) DEFAULT NULL,
  `商品属性` varchar(255) DEFAULT NULL,
  `下单方式` varchar(255) DEFAULT NULL,
  `是否关联保险` varchar(255) DEFAULT NULL,
  `商品价格` varchar(255) DEFAULT NULL,
  `建立时间` varchar(255) DEFAULT NULL,
  `下架时间` varchar(255) DEFAULT NULL,
  `产品名称` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowcompleteitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_tablename2

{
  "message": "\u8868 tmp_tablename2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tablename` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8

workflowruntimetimingmsgsends

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowitems_bak

{
  "message": "\u8868 workflowitems_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowitems_bak`;

vi_userworkphoneinfo

{
  "message": "\u8868 vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

home_worktimetrend

{
  "message": "\u8868 home_worktimetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_worktimetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `WorkHour` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工作时间段',
  `WorkDayCnt` int(11) NOT NULL DEFAULT '0' COMMENT '工作日完成数量',
  `WeekendCnt` int(11) NOT NULL DEFAULT '0' COMMENT '非工作日完成数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkHour` (`WorkHour`),
  KEY `NON_ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_近1周作业结束时间段分布'

workflownodecommentactors_bak

{
  "message": "\u8868 workflownodecommentactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodecommentactors_bak`;

rp_afcreceiverecordinfo

{
  "message": "\u8868 rp_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_afcreceiverecordinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `RelateId` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'RelateId',
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BatchNo` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ContractNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkMan` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OverdueDays` int(11) DEFAULT NULL,
  `OverdueGrade` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CaseDate` date DEFAULT NULL,
  `RetreatDate` date DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL,
  `ReceivePrice` decimal(20,2) DEFAULT NULL,
  `ReceiveIssue` int(11) DEFAULT NULL,
  `ReceiveStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveStatusRemark` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PersonAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Grade` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RegistrationDate` datetime DEFAULT NULL,
  `AddRemark1` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AddRemark2` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveAmounts` decimal(18,2) DEFAULT NULL,
  `ReturnedType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReturnedType2` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalStatus` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EntryAmount` decimal(18,2) DEFAULT NULL,
  `IfReport` tinyint(1) DEFAULT NULL,
  `PresentName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalTime` datetime DEFAULT NULL,
  `AuditTime` datetime DEFAULT NULL,
  `SubjectNameSummary` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `BatchNo` (`BatchNo`) USING BTREE,
  KEY `RelateId` (`RelateId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8222 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='金融回款登记明细表-测试'

vi_chpworkorderdetail_test

{
  "message": "\u8868 vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

tb_workflowinfo

{
  "columns": {
    "Remark": {
      "type": {
        "source": "varchar(500)",
        "target": "varchar(200)"
      }
    }
  }
}

tb_userclockininfo

{
  "message": "\u8868 tb_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-UserWorkStatus` (`UserWorkStatus`) USING BTREE,
  KEY `NON-IsAutomatic` (`IsAutomatic`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2168 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡设置信息表'

tb_afcpaymentreport

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_feeapplicationinfo

{
  "columns": {
    "ApplyFee": {
      "message": "\u5217 ApplyFee \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonCode": {
      "message": "\u5217 ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonName": {
      "message": "\u5217 ApplyPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyReason": {
      "type": {
        "source": "varchar(300)",
        "target": "varchar(100)"
      }
    },
    "ApplyWorkStatus": {
      "message": "\u5217 ApplyWorkStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AuditRemark": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(100)"
      }
    },
    "DynamicFormJson": {
      "message": "\u5217 DynamicFormJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeGroupCode": {
      "message": "\u5217 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonCode": {
      "message": "\u5217 LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonName": {
      "message": "\u5217 LastAuditPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditTime": {
      "message": "\u5217 LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeCode": {
      "message": "\u5217 OriginalPayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeName": {
      "message": "\u5217 OriginalPayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeCode": {
      "message": "\u5217 PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeName": {
      "message": "\u5217 PayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "RuleActionLogId": {
      "message": "\u5217 RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyLoginName": {
      "message": "\u5217 SubsidyLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyName": {
      "message": "\u5217 SubsidyName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyRemark": {
      "message": "\u5217 SubsidyRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyStatus": {
      "message": "\u5217 SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u5217 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_SettleMethod": {
      "message": "\u5217 v_SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "FeeGroupCode": {
      "message": "\u7d22\u5f15 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-ApplyPersonCode": {
      "message": "\u7d22\u5f15 NON-ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-AuditStatus": {
      "message": "\u7d22\u5f15 NON-AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditPersonCode": {
      "message": "\u7d22\u5f15 NON-LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditTime": {
      "message": "\u7d22\u5f15 NON-LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-PayeeCode": {
      "message": "\u7d22\u5f15 NON-PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-RuleActionLogId": {
      "message": "\u7d22\u5f15 NON-RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-SubsidyStatus": {
      "message": "\u7d22\u5f15 NON-SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SettleMethod": {
      "message": "\u7d22\u5f15 SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u7d22\u5f15 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderrecheckdetailforexport

{
  "message": "\u8868 vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

tb_afcworkorderinfo

{
  "columns": {
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "CustomerBriefName": {
      "message": "\u5217 CustomerBriefName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_chprpappcode

{
  "message": "\u8868 tmp_chprpappcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprpappcode` (
  `AppCode` varchar(100) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`AppCode`),
  KEY `AppCode` (`AppCode`),
  KEY `WorkStatus` (`WorkStatus`),
  KEY `BatchNo` (`BatchNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩明细表导出APPCODE及批次(即用即删)_长期表'

tmp_cxhis

{
  "message": "\u8868 tmp_cxhis \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhis` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `TableName` varchar(100) DEFAULT NULL,
  `OldPrefix` varchar(20) DEFAULT NULL,
  `KeyPrefix` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `1` (`TableName`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='长享历史数据迁移临时表'

vi_vhsworkingorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workorderinvoicelog

{
  "message": "\u8868 tb_workorderinvoicelog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinvoicelog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID',
  `ApplyPhone` varchar(50) DEFAULT NULL COMMENT '申请电话号码',
  `Result` int(11) DEFAULT NULL COMMENT '申请结果(0-申请中,1-申请成功,2-申请失败)',
  `Remark` varchar(200) DEFAULT NULL COMMENT '申请结果备注',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '申请操作人ID',
  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-Result` (`Result`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1526 DEFAULT CHARSET=utf8 COMMENT='工单发票申请日志表'

vi_workorderinstalldetail

{
  "columns": {
    "DeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "SimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp

{
  "message": "\u8868 tmp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp` (
  `A` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_ordercreatetrend

{
  "message": "\u8868 home_ordercreatetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercreatetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckYear` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表年份',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_CheckYear` (`CheckYear`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=1832 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_下单量趋势'

workflowruntimesubscribemsgs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_userfeedetail

{
  "message": "\u8868 tb_userfeedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userfeedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(UF)',
  `UserInfoId` varchar(12) DEFAULT NULL COMMENT 'tb_userinfo.id',
  `LoginName` varchar(20) DEFAULT NULL COMMENT '用户账号',
  `FeeGroupCode` varchar(50) DEFAULT NULL COMMENT '费用标准组code',
  `FeeItemId` varchar(12) DEFAULT NULL COMMENT '费用项目ID(tb_feeiteminfo.id)',
  `ServiceSubjectCode` varchar(50) DEFAULT NULL COMMENT '服务科目code(tb_servicesubject.code)',
  `RuleJson` json DEFAULT NULL COMMENT '条件JSON',
  `Price` decimal(10,2) DEFAULT '0.00' COMMENT '标准费用/分佣比例',
  `EffectDate` date DEFAULT NULL COMMENT '生效日期',
  `EffectStatus` smallint(6) DEFAULT NULL COMMENT '生效状态(0-待生效,1-已生效,2-已过期)',
  `IfShow` smallint(6) DEFAULT NULL COMMENT '是否展示(0-不展示,1-展示)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` varchar(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  `v_Power` decimal(18,1) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')))) VIRTUAL COMMENT '(CHP)功率',
  `v_CustomerName` varchar(100) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')))) VIRTUAL COMMENT '(CHP)客户名称',
  `v_CustomerId` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')))) VIRTUAL COMMENT '(CHP)客户姓名',
  `v_Line` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')))) VIRTUAL COMMENT '(CHP)线缆(米)',
  `v_BrandCode` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')))) VIRTUAL COMMENT '(CHP)品牌标准code',
  PRIMARY KEY (`Id`),
  KEY `NON-UserInfoId` (`UserInfoId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-FeeItemId` (`FeeItemId`) USING BTREE,
  KEY `NON-ServiceSubjectCode` (`ServiceSubjectCode`) USING BTREE,
  KEY `NON-EffectDate` (`EffectDate`) USING BTREE,
  KEY `NON-FeeGroupCode` (`FeeGroupCode`) USING BTREE,
  KEY `NON-IfShow` (`IfShow`) USING BTREE,
  KEY `NON-v_CustomerName` (`v_CustomerName`),
  KEY `NON-v_CustomerId` (`v_CustomerId`),
  KEY `NON-v_Line` (`v_Line`),
  KEY `NON-v_BrandCode` (`v_BrandCode`),
  KEY `NON-v_Power` (`v_Power`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩团队管理人员费用信息表'

workflowcompletesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowcompleteattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

basic_subjectclass

{
  "message": "\u8868 basic_subjectclass \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `basic_subjectclass` (
  `Id` char(12) NOT NULL COMMENT '主键(SS)',
  `TenantId` char(12) DEFAULT NULL COMMENT '租户Id',
  `ClassCode` varchar(50) DEFAULT NULL COMMENT '科目编码',
  `ClassName` varchar(100) DEFAULT NULL COMMENT '科目名称',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '创建人Id',
  `CreatedAt` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  `UpdatedById` varchar(36) DEFAULT NULL COMMENT '更新人Id',
  `UpdatedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '更新时间',
  `DeletedById` varchar(36) DEFAULT NULL COMMENT '删除人',
  `DeletedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '删除时间',
  `Deleted` tinyint(4) DEFAULT '0' COMMENT '是否删除(0否1是)',
  PRIMARY KEY (`Id`),
  KEY `NON-ClassCode` (`ClassCode`),
  KEY `NON-TenantId` (`TenantId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础信息域_服务科目分类'

basic_userroleinfo

{
  "indexes": {
    "NON-UserCenterId": {
      "message": "\u7d22\u5f15 NON-UserCenterId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-UserCenterId\nSELECT * FROM tb_whchangelog": {
      "message": "\u7d22\u5f15 NON-UserCenterId\nSELECT * FROM tb_whchangelog \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `basic_userroleinfo` DROP INDEX `NON-UserCenterId
SELECT * FROM tb_whchangelog`;

tb_afcworkfinanceinfo

{
  "columns": {
    "EntrustAmount": {
      "message": "\u5217 EntrustAmount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PaymentPeriod": {
      "type": {
        "source": "varchar(100)",
        "target": "int(11)"
      }
    },
    "Performance": {
      "message": "\u5217 Performance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_workimp_mid

{
  "message": "\u8868 tmp_workimp_mid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp_mid` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `workorderid` varchar(12) DEFAULT NULL,
  `ordertype` varchar(200) DEFAULT NULL,
  `SubjectCodeSummary` varchar(200) DEFAULT NULL,
  `SubjectNameSummary` varchar(200) DEFAULT NULL,
  `SubjectNum` int(11) DEFAULT NULL,
  `appcode` varchar(200) DEFAULT NULL,
  `custname` varchar(200) DEFAULT NULL,
  `customerid` varchar(200) DEFAULT NULL,
  `CustStoreId` varchar(200) DEFAULT NULL,
  `storename` varchar(200) DEFAULT NULL,
  `CustStoreCode` varchar(200) DEFAULT NULL,
  `CustSettleId` varchar(200) DEFAULT NULL,
  `settlename` varchar(200) DEFAULT NULL,
  `brandname` varchar(200) DEFAULT NULL,
  `procode` varchar(200) DEFAULT NULL,
  `proname` varchar(200) DEFAULT NULL,
  `citycode` varchar(200) DEFAULT NULL,
  `cityname` varchar(200) DEFAULT NULL,
  `areacode` varchar(200) DEFAULT NULL,
  `areaname` varchar(200) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  `carusername` varchar(200) DEFAULT NULL,
  `carusertel` varchar(200) DEFAULT NULL,
  `installperson` varchar(200) DEFAULT NULL,
  `loginname` varchar(200) DEFAULT NULL,
  `usercenterid` varchar(200) DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL,
  `rownum` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8192 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_workresourceinfo

{
  "columns": {
    "ComparisonResults": {
      "message": "\u5217 ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceCode": {
      "message": "\u5217 ResourceCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ComparisonResults": {
      "message": "\u7d22\u5f15 NON-ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_csgroup

{
  "message": "\u8868 tmp_csgroup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_csgroup` (
  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

de_tb_merchant20231129094137713

{
  "message": "\u8868 de_tb_merchant20231129094137713 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant20231129094137713` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

aggregatedcounter

{
  "message": "\u8868 aggregatedcounter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `aggregatedcounter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_CounterAggregated_Key` (`Key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

de_xichashiti20220523150128431

{
  "message": "\u8868 de_xichashiti20220523150128431 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_xichashiti20220523150128431` (
  `Id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `x1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'dataText',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='喜茶实体'

vi_tireworkorderinfo

{
  "message": "\u8868 vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

tm_userinfoa20210727

{
  "message": "\u8868 tm_userinfoa20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfoa20210727`;

tb_abnormalorder_log

{
  "columns": {
    "LastUpdatedTimestamp": {
      "message": "\u5217 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "MessageRemindJson": {
      "message": "\u5217 MessageRemindJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "LastUpdatedTimestamp": {
      "message": "\u7d22\u5f15 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workgoodsdetail

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_feeauditlog

{
  "message": "\u8868 tb_feeauditlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_feeauditlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `FeeApplicationId` varchar(12) DEFAULT NULL COMMENT '申请单ID(tb_feeapplicationinfo.id)',
  `PersonCode` char(12) DEFAULT NULL COMMENT '操作人Code',
  `PersonName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `OperationType` varchar(20) DEFAULT NULL COMMENT '操作类型',
  `Result` varchar(20) DEFAULT NULL COMMENT '审核结果',
  `Remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `InsertTime` datetime DEFAULT NULL,
  `Deleted` tinyint(4) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-FeeApplicationId` (`FeeApplicationId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT='通用域_费用申请审批日志'

tb_afcfeedetail

{
  "indexes": {
    "NON-WorkOrderId-PriceTypeCode": {
      "message": "\u7d22\u5f15 NON-WorkOrderId-PriceTypeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderrecheckinfo

{
  "message": "\u8868 tb_workorderrecheckinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderrecheckinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `RecheckStatus` smallint(6) DEFAULT NULL COMMENT '复检状态:0.复检不通过;1.复检通过;2.待复检;',
  `RecheckContent` varchar(100) DEFAULT NULL COMMENT '复检不通过原因',
  `RecheckPersonCode` varchar(50) DEFAULT NULL COMMENT '复检人账号',
  `RecheckPersonName` varchar(50) DEFAULT NULL COMMENT '复检人名称',
  `FirstRecheckTime` datetime DEFAULT NULL COMMENT '首次复检时间',
  `RecheckPassTime` datetime DEFAULT NULL COMMENT '复检通过时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-RecheckPassTime` (`RecheckPassTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='业务域_复检工单信息表'

tb_workserviceinfo

{
  "columns": {
    "InstitutionCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(20)"
      }
    },
    "WorkerCode": {
      "message": "\u5217 WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerId": {
      "message": "\u5217 WorkerId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerName": {
      "message": "\u5217 WorkerName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-InstitutionCode": {
      "message": "\u7d22\u5f15 NON-InstitutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkerCode": {
      "message": "\u7d22\u5f15 NON-WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_cxhisorderid

{
  "message": "\u8868 tmp_cxhisorderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhisorderid` (
  `Id` varchar(20) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='长享历史数据工单Id'

workflowcompleteactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workorderinfo_test

{
  "message": "\u8868 tb_workorderinfo_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinfo_test` (
  `Id` varchar(36) NOT NULL COMMENT '主键(WI)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '申请编码',
  `SourceType` smallint(6) DEFAULT NULL COMMENT '工单来源(0工单下单1智车品2客户接口3LCRM下单4OCRM下单5平安私有云6金融SAAS推送7车务推送)',
  `OrderType` varchar(50) DEFAULT NULL COMMENT '工单类型(sys_ordertypeinfo.Code)',
  `CreateType` smallint(6) DEFAULT NULL COMMENT '工单建单方式(来源二级分类)(1批量导入)',
  `ServiceProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态(basic_workflowstatus.WorkStatus)',
  `CustomerId` char(12) DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreId` char(12) DEFAULT NULL COMMENT '门店Id',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustStoreCode` varchar(50) DEFAULT NULL COMMENT '门店Code',
  `PreCustStoreId` char(12) DEFAULT NULL COMMENT '客户接口下单门店Id',
  `PreCustStoreName` varchar(100) DEFAULT NULL COMMENT '客户接口下单门店名称',
  `CustSettleId` char(12) DEFAULT NULL COMMENT '结算单位Id',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `IsCustomer` tinyint(1) NOT NULL COMMENT '是否为客户(0否1是)',
  `CustCoopType` smallint(6) DEFAULT NULL COMMENT '客户是否有合作商品(1中瑞2非中瑞3中瑞+非中瑞)',
  `ProCode` varchar(10) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(10) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '地区Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '地区名称',
  `InstallAddress` varchar(200) DEFAULT NULL COMMENT '加装地址',
  `InstallTime` datetime DEFAULT NULL COMMENT '加装时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `SecondLinkTel` varchar(20) DEFAULT NULL COMMENT '第二联系电话',
  `SecondLinkMan` varchar(50) DEFAULT NULL COMMENT '第二联系人',
  `WarehouseId` char(12) DEFAULT NULL COMMENT '发货一级仓Id',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '发货一级仓名称',
  `Remark` varchar(500) DEFAULT NULL COMMENT '客户备注',
  `IsUrgent` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检修工单是否紧急(0否1是)',
  `CustUniqueSign` varchar(50) DEFAULT NULL COMMENT '客户唯一标识',
  `CreatePersonCode` varchar(50) DEFAULT NULL COMMENT '建单人Code',
  `CreatePersonName` varchar(50) DEFAULT NULL COMMENT '建单人姓名',
  `EffectiveTime` datetime DEFAULT NULL COMMENT '工单生效时间',
  `EffectiveSuccessfulTime` datetime DEFAULT NULL COMMENT '下单成功生效时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `LastUpdateTimeStamp` bigint(20) DEFAULT (unix_timestamp(now(3))) COMMENT '最近更新时间',
  `LastUpdateTimeStamp1` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  PRIMARY KEY (`Id`),
  KEY `LastUpdateTimeStamp1` (`LastUpdateTimeStamp1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单信息表'

vi_workedorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_canaltest3

{
  "message": "\u8868 tmp_canaltest3 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest3`;

tb_appointment

{
  "columns": {
    "Deleted": {
      "nullable": {
        "source": false,
        "target": true
      }
    }
  }
}

workflowhandlingstatus_bak

{
  "message": "\u8868 workflowhandlingstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowhandlingstatus_bak`;

vi_chpworkorderdetail

{
  "message": "\u8868 vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

de_tb_merchant

{
  "message": "\u8868 de_tb_merchant \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

vi_workingorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_importlog

{
  "indexes": {
    "NON-ImportCode": {
      "message": "\u7d22\u5f15 NON-ImportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderswitchdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_csgroup

{
  "message": "\u8868 tmp_csgroup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_csgroup` (
  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimeitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_vhsworkingorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workedorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workauditphotoinfo

{
  "message": "\u8868 tb_workauditphotoinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workauditphotoinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `AuditPhotoType` smallint(6) DEFAULT NULL COMMENT '质检照片类型:1.人车合影照片;2.三合一照片;3.安装远照(设备0059);4.安装近照(设备0059);5.环境照片;',
  `AuditPhotoRule` varchar(200) DEFAULT NULL COMMENT '质检照片类型识别规则',
  `AuditStatus` smallint(6) DEFAULT NULL COMMENT '质检状态:0.未通过;1.已通过;',
  `ResourceId` char(12) DEFAULT NULL COMMENT '资源表Id(basic_resourceitem.Id)',
  `AuditRemark` varchar(50) DEFAULT NULL COMMENT '质检备注',
  `IsAuditError` smallint(6) DEFAULT NULL COMMENT '是否质检系统识别有误:0.否;1.是;',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ResourceId` (`ResourceId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='业务域_自动质检图片信息'

home_timeduration

{
  "message": "\u8868 home_timeduration \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_timeduration` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DispatchDuration` int(11) NOT NULL DEFAULT '0' COMMENT '调度时长(小时)',
  `ServiceDuration` int(11) NOT NULL DEFAULT '0' COMMENT '总服务时长(小时)',
  `AuditDuration` int(11) NOT NULL DEFAULT '0' COMMENT '质检响应时长(小时)',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=2017 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_时效信息'

workflownodeactors_bak

{
  "message": "\u8868 workflownodeactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactors_bak`;

workflowcompleterelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

slow918

{
  "message": "\u8868 slow918 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow918` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count911` int(11) DEFAULT NULL,
  `count918` int(11) DEFAULT NULL,
  `countminus` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workflowinfo

{
  "columns": {
    "Remark": {
      "type": {
        "source": "varchar(500)",
        "target": "varchar(200)"
      }
    }
  }
}

vi_workorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_workorder20250314

{
  "message": "\u8868 tm_workorder20250314 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_workorder20250314` (
  `工单编号` varchar(255) DEFAULT NULL,
  `省` varchar(255) DEFAULT NULL,
  `市` varchar(255) DEFAULT NULL,
  `区` varchar(255) DEFAULT NULL,
  `详细地址` varchar(255) DEFAULT NULL,
  `服务科目` varchar(255) DEFAULT NULL,
  `施工人(账号)` varchar(255) DEFAULT NULL,
  `施工人(姓名)` varchar(255) DEFAULT NULL,
  `电话` varchar(255) DEFAULT NULL,
  `工单提交时间` varchar(255) DEFAULT NULL,
  `施工完成时间` varchar(255) DEFAULT NULL,
  `工单状态` varchar(255) DEFAULT NULL,
  `服务商` varchar(255) DEFAULT NULL,
  `报表月份` varchar(255) DEFAULT NULL,
  `公司` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_orderdetaildaily

{
  "message": "\u8868 home_orderdetaildaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_orderdetaildaily` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DetailType` smallint(6) DEFAULT NULL COMMENT '明细类型(1下单时间2首次接单时间3下单成功时间4首次提交结果时间\n5最后一次提交结果时间6首次质检时间7工单质检时间8质检驳回时间9首次质检即通过10工单完成时间11工单关闭时间)',
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单Id',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ServiceId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Id',
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Code',
  `ServiceName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员姓名',
  `DetailTime` datetime DEFAULT NULL COMMENT '明细事件时间',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '查询日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_ServiceCode` (`ServiceCode`),
  KEY `UNI-DetailWorkId` (`DetailType`,`WorkOrderId`),
  KEY `NON_AreaCode` (`AreaCode`),
  KEY `NON_ProCode` (`ProCode`),
  KEY `NON_ServiceId` (`ServiceId`),
  KEY `NON_DetailType` (`DetailType`),
  KEY `NON_ProviderCode` (`ProviderCode`),
  KEY `NON_WorkOrderId` (`WorkOrderId`),
  KEY `NON_CustomerName` (`CustomerName`),
  KEY `NON_CityCode` (`CityCode`),
  KEY `NON_OrderType` (`OrderType`),
  KEY `NON_CheckDate` (`CheckDate`),
  KEY `NON_DetailTime` (`DetailTime`),
  KEY `NON_CustomerId` (`CustomerId`)
) ENGINE=InnoDB AUTO_INCREMENT=107630197 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_每日工单明细'

tmp_chpresourcedetail

{
  "message": "\u8868 tmp_chpresourcedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpresourcedetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `SourceType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件类型',
  `FileName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
  `Url` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '链接',
  `CreatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩导出附件临时表'

vi_riskworkorderinfo_other

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

rp_workordercount

{
  "indexes": {
    "NON-ArtificialServicePriceName": {
      "message": "\u7d22\u5f15 NON-ArtificialServicePriceName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowhandlingstatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workgoodsdetail

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

rp_vhsworkorderinfodetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

flink_sinka

{
  "message": "\u8868 flink_sinka \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_sinka`;

workflownodecommentactors_bak

{
  "message": "\u8868 workflownodecommentactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodecommentactors_bak`;

tb_exportlog

{
  "columns": {
    "ExpStatus": {
      "message": "\u5217 ExpStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ExportCode": {
      "message": "\u7d22\u5f15 NON-ExportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_zhusuwei

{
  "message": "\u8868 tmp_zhusuwei \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_zhusuwei` (
  `省份` varchar(255) DEFAULT NULL,
  `父级` varchar(255) DEFAULT NULL,
  `城市` varchar(255) DEFAULT NULL,
  `汇总的` varchar(255) DEFAULT NULL,
  `城市等级` varchar(255) DEFAULT NULL,
  `职等信息` varchar(255) DEFAULT NULL,
  `金额` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_workflowstatus_bak

{
  "message": "\u8868 basic_workflowstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak`;

vi_userworkphoneinfo

{
  "message": "\u8868 vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

tm_persons

{
  "message": "\u8868 tm_persons \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_chpworkorderinfo

{
  "columns": {
    "Distance": {
      "type": {
        "source": "decimal(18,1)",
        "target": "varchar(255)"
      }
    },
    "LastAuditRejectRemark": {
      "message": "\u5217 LastAuditRejectRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastUpdateTimeStamp": {
      "message": "\u5217 LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-LastUpdateTimeStamp": {
      "message": "\u7d22\u5f15 NON-LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderinvoicelog

{
  "message": "\u8868 tb_workorderinvoicelog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinvoicelog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID',
  `ApplyPhone` varchar(50) DEFAULT NULL COMMENT '申请电话号码',
  `Result` int(11) DEFAULT NULL COMMENT '申请结果(0-申请中,1-申请成功,2-申请失败)',
  `Remark` varchar(200) DEFAULT NULL COMMENT '申请结果备注',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '申请操作人ID',
  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-Result` (`Result`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1526 DEFAULT CHARSET=utf8 COMMENT='工单发票申请日志表'

阶段目标生产达成

{
  "message": "\u8868 \u9636\u6bb5\u76ee\u6807\u751f\u4ea7\u8fbe\u6210 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `阶段目标生产达成` (
  `研发生产目标模板-产品迭代优化/集成项目/客制化项目` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `阶段基线` varchar(255) DEFAULT NULL,
  `工时
(人天)` varchar(255) DEFAULT NULL,
  `交期
(YY-MM-DD)` varchar(255) DEFAULT NULL,
  `范围
(PRD版本/架构优化)` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_workimp

{
  "message": "\u8868 tmp_workimp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp` (
  `ordertype` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `classname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `appcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `custname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `storename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `settlename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `brandname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `proname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `cityname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `areaname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusername` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusertel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `installperson` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL COMMENT '工单提交时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

basic_workflowstatus_bak_new

{
  "message": "\u8868 basic_workflowstatus_bak_new \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak_new`;

tm_appcode

{
  "message": "\u8868 tm_appcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_appcode` (
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`appcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=36 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

home_ordercreatetrend

{
  "message": "\u8868 home_ordercreatetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercreatetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckYear` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表年份',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_CheckYear` (`CheckYear`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=1832 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_下单量趋势'

tm_workresourceinfo_20210705

{
  "message": "\u8868 tm_workresourceinfo_20210705 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705`;

tb_workfeeinfo

{
  "columns": {
    "IsAddition": {
      "message": "\u5217 IsAddition \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "PrePaymentOrderNo": {
      "message": "\u7d22\u5f15 PrePaymentOrderNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workfeeinfo` DROP COLUMN `IsAddition`;

home_viewdata

{
  "message": "\u8868 home_viewdata \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_viewdata` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DataType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `JsonValue` json DEFAULT NULL COMMENT 'data数据',
  `InsertTime` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `home_viewdata_ProCode_index` (`ProCode`),
  KEY `home_viewdata_DateType_index` (`DateType`),
  KEY `home_viewdata_DataType_index` (`DataType`),
  KEY `home_viewdata_ProviderCode_index` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=1036829 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='大屏工单_首页视图'

workflownodestepconditions_bak

{
  "message": "\u8868 workflownodestepconditions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodestepconditions_bak`;

tb_afcsecondvisitinfo

{
  "message": "\u8868 tb_afcsecondvisitinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcsecondvisitinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(SV)',
  `WorkOrderId` varchar(20) DEFAULT NULL COMMENT '工单ID',
  `InitiatorCode` varchar(50) DEFAULT NULL COMMENT '发起人Code',
  `InitiatorName` varchar(100) DEFAULT NULL COMMENT '发起人Name',
  `InitiateTime` datetime DEFAULT NULL COMMENT '发起时间',
  `InitiateRemark` varchar(2000) DEFAULT NULL COMMENT '发起原因',
  `SubmitType` smallint(6) DEFAULT NULL COMMENT '二访保存状态(0保存,1提交)',
  `SubmitterCode` varchar(50) DEFAULT NULL COMMENT '提交人Code',
  `SubmitterName` varchar(100) DEFAULT NULL COMMENT '提交人Name',
  `SubmitStatus` smallint(6) DEFAULT '0' COMMENT '确认二访(0-无操作,1-确认,2-拒绝)',
  `SubmitTime` datetime DEFAULT NULL COMMENT '提交时间',
  `SubmitRemark` varchar(2000) DEFAULT NULL COMMENT '提交备注',
  `RejectReason` varchar(2000) DEFAULT NULL COMMENT '拒绝原因',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融二访信息'

slow911

{
  "message": "\u8868 slow911 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow911` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_riskdatatime

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

basic_orgroleinfo

{
  "columns": {
    "ApiPermission": {
      "message": "\u5217 ApiPermission \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_feeauditlog

{
  "message": "\u8868 tb_feeauditlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_feeauditlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `FeeApplicationId` varchar(12) DEFAULT NULL COMMENT '申请单ID(tb_feeapplicationinfo.id)',
  `PersonCode` char(12) DEFAULT NULL COMMENT '操作人Code',
  `PersonName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `OperationType` varchar(20) DEFAULT NULL COMMENT '操作类型',
  `Result` varchar(20) DEFAULT NULL COMMENT '审核结果',
  `Remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `InsertTime` datetime DEFAULT NULL,
  `Deleted` tinyint(4) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-FeeApplicationId` (`FeeApplicationId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT='通用域_费用申请审批日志'

slow1114

{
  "message": "\u8868 slow1114 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1114` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

changhe

{
  "message": "\u8868 changhe \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `changhe` (
  `结算单位` varchar(255) DEFAULT NULL,
  `结算属性` varchar(255) DEFAULT NULL,
  `商品名称` varchar(255) DEFAULT NULL,
  `类型` varchar(255) DEFAULT NULL,
  `商品属性` varchar(255) DEFAULT NULL,
  `下单方式` varchar(255) DEFAULT NULL,
  `是否关联保险` varchar(255) DEFAULT NULL,
  `商品价格` varchar(255) DEFAULT NULL,
  `建立时间` varchar(255) DEFAULT NULL,
  `下架时间` varchar(255) DEFAULT NULL,
  `产品名称` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_delorderid

{
  "columns": {
    "remark": {
      "message": "\u5217 remark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_dists

{
  "message": "\u8868 tmp_dists \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_dists` (
  `lv3code` varchar(255) DEFAULT NULL,
  `lv3name` varchar(255) DEFAULT NULL,
  `zr3code` varchar(255) DEFAULT NULL,
  `zr3name` varchar(255) DEFAULT NULL,
  `zr2code` varchar(255) DEFAULT NULL,
  `zr2name` varchar(255) DEFAULT NULL,
  `zr1code` varchar(255) DEFAULT NULL,
  `lv1name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workcarinfo

{
  "indexes": {
    "NON-PlateColor": {
      "message": "\u7d22\u5f15 NON-PlateColor \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workcarinfo` DROP INDEX `NON-PlateColor`;

vi_qualityorderdetail

{
  "columns": {
    "AuditContent": {
      "message": "\u5217 AuditContent \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_afcworkorderdetailforexport

{
  "message": "\u8868 vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

workflowruntimedelegatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_persons20250121

{
  "message": "\u8868 tm_persons20250121 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250121` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

test_encryption

{
  "message": "\u8868 test_encryption \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_encryption` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) DEFAULT NULL,
  `Data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8

tm_customerinfoformove20210927

{
  "message": "\u8868 tm_customerinfoformove20210927 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_customerinfoformove20210927`;

tb_workorderdetailmodel

{
  "message": "\u8868 tb_workorderdetailmodel \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderdetailmodel` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Report` int(11) NOT NULL COMMENT '报表(1-金融工单明细表)',
  `ModelName` varchar(50) DEFAULT NULL COMMENT '报表模板名称',
  `Column` text COMMENT '自定义字段',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '模板创建人账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '模板创建人姓名',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `Deleted` tinyint(4) DEFAULT NULL COMMENT '是否删除',
  PRIMARY KEY (`Id`),
  KEY `NON-Report` (`Report`) USING BTREE,
  KEY `NON-ModelName` (`ModelName`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COMMENT='报表导出模板表'

workflowprocessstates_bak

{
  "message": "\u8868 workflowprocessstates_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowprocessstates_bak`;

vi_vhsworkedorderinfo

{
  "columns": {
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_afcworkorderinfo

{
  "columns": {
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "CustomerBriefName": {
      "message": "\u5217 CustomerBriefName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodecommentactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_districtyx1

{
  "message": "\u8868 tmp_districtyx1 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx1` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `省编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_usercount

{
  "message": "\u8868 home_usercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AreaCnt` int(11) NOT NULL DEFAULT '0' COMMENT '区域覆盖人数',
  `CoverCnt` int(11) NOT NULL DEFAULT '0' COMMENT '实际施工人数',
  `ActiveRate` int(11) DEFAULT NULL COMMENT '活跃率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=1280 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_人员信息'

rp_afcreceiverecordinfo

{
  "message": "\u8868 rp_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_afcreceiverecordinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `RelateId` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'RelateId',
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BatchNo` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ContractNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkMan` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OverdueDays` int(11) DEFAULT NULL,
  `OverdueGrade` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CaseDate` date DEFAULT NULL,
  `RetreatDate` date DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL,
  `ReceivePrice` decimal(20,2) DEFAULT NULL,
  `ReceiveIssue` int(11) DEFAULT NULL,
  `ReceiveStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveStatusRemark` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PersonAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Grade` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RegistrationDate` datetime DEFAULT NULL,
  `AddRemark1` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AddRemark2` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveAmounts` decimal(18,2) DEFAULT NULL,
  `ReturnedType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReturnedType2` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalStatus` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EntryAmount` decimal(18,2) DEFAULT NULL,
  `IfReport` tinyint(1) DEFAULT NULL,
  `PresentName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalTime` datetime DEFAULT NULL,
  `AuditTime` datetime DEFAULT NULL,
  `SubjectNameSummary` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `BatchNo` (`BatchNo`) USING BTREE,
  KEY `RelateId` (`RelateId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8222 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='金融回款登记明细表-测试'

testuser

{
  "columns": {
    "Id": {
      "extra": {
        "source": "auto_increment",
        "target": ""
      },
      "nullable": {
        "source": false,
        "target": true
      }
    }
  },
  "indexes": {
    "PRIMARY": {
      "message": "\u7d22\u5f15 PRIMARY \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "idx_testuser_lookup": {
      "message": "\u7d22\u5f15 idx_testuser_lookup \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `testuser` DROP INDEX `idx_testuser_lookup`;

home_usermapdetail

{
  "message": "\u8868 home_usermapdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdetail` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-OrderTypeName` (`OrderTypeName`)
) ENGINE=InnoDB AUTO_INCREMENT=795635 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图明细'

tb_userworkphoneinfo

{
  "message": "\u8868 tb_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `WXPhoneInfoId` varchar(12) DEFAULT NULL COMMENT '微信语音绑定微信聊天记录ID(tb_userworkphoneinfo.Id)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`),
  KEY `WXPhoneInfoId` (`WXPhoneInfoId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

workflowruntimecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflownodeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_chpfixorder

{
  "message": "\u8868 tmp_chpfixorder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpfixorder` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderRemark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserTel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderCompleteTime` datetime DEFAULT NULL,
  `StoreCode` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `RecordPersonName` (`RecordPersonName`) USING BTREE,
  KEY `NON-OrderTypeName` (`OrderTypeName`) USING BTREE,
  KEY `ProName` (`ProName`) USING BTREE,
  KEY `StoreName` (`StoreName`) USING BTREE,
  KEY `SubjectName` (`SubjectName`) USING BTREE,
  KEY `CityName` (`CityName`) USING BTREE,
  KEY `CustomerId` (`CustomerId`) USING BTREE,
  KEY `AppCode` (`AppCode`) USING BTREE,
  KEY `AreaName` (`AreaName`) USING BTREE,
  KEY `SubjectCode` (`SubjectCode`) USING BTREE,
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `CustomerName` (`CustomerName`) USING BTREE,
  KEY `SettleName` (`SettleName`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=864 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='20231010\r\n导入充电桩私桩巡检虚拟数据864单'

vi_workorderteardetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_aes_encrypt

{
  "message": "\u8868 tmp_aes_encrypt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_aes_encrypt` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `NUM` varbinary(100) DEFAULT NULL,
  `num1` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

vi_workorderrecheckdetailforexport

{
  "message": "\u8868 vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

tm_resource

{
  "message": "\u8868 tm_resource \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_resource` (
  `resourceid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `workorderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `resourcename` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `URL` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`resourceid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

workflownodestepconditions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_wxuserinfo

{
  "message": "\u8868 tb_wxuserinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_wxuserinfo` (
  `WxId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键(WxId,安米无微信ID,数据同微信号)',
  `DataSource` smallint(6) NOT NULL DEFAULT '0' COMMENT '来源(1-云客,2-安米)',
  `WxCode` varchar(50) DEFAULT NULL COMMENT '微信号',
  `WxName` varchar(50) DEFAULT NULL COMMENT '微信昵称',
  `WxHead` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '微信头像URL',
  `WxNameRemark` varchar(100) DEFAULT NULL COMMENT '微信备注名',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserType` smallint(6) DEFAULT NULL COMMENT '类型(1-员工,2-客户(员工好友),3-群,4-群成员)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`WxId`,`DataSource`),
  KEY `UserType` (`UserType`),
  KEY `LoginName` (`LoginName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员微信信息表'

tm_flowstatus

{
  "message": "\u8868 tm_flowstatus \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_flowstatus` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ItemCode` varchar(50) DEFAULT NULL,
  `ItemName` varchar(50) DEFAULT NULL,
  `NodeCode` varchar(50) DEFAULT NULL,
  `NodeName` varchar(50) DEFAULT NULL,
  `StatusName` varchar(50) DEFAULT NULL,
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`Id`),
  KEY `NON-ItemName` (`ItemName`),
  KEY `NON-NodeName` (`NodeName`),
  KEY `NON-StatusName` (`StatusName`)
) ENGINE=InnoDB AUTO_INCREMENT=577 DEFAULT CHARSET=utf8 COMMENT='各工作流中各步骤与状态取值对应关系表'

workflowcompleteitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderfixdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_tablename2

{
  "message": "\u8868 tmp_tablename2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tablename` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8

de_xichashiti

{
  "columns": {
    "testJson": {
      "message": "\u5217 testJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workflowjsoninfo

{
  "columns": {
    "SourceMode": {
      "default": {
        "source": "1",
        "target": null
      }
    },
    "v_LastAddRecordTime": {
      "message": "\u5217 v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_LastAddRecordTime": {
      "message": "\u7d22\u5f15 NON-v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

aggregatedcounter

{
  "message": "\u8868 aggregatedcounter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `aggregatedcounter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_CounterAggregated_Key` (`Key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_canaltest3

{
  "message": "\u8868 tmp_canaltest3 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest3`;

vi_workorderinstalldetail

{
  "columns": {
    "DeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "SimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

workflowrelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workaddressinfo

{
  "indexes": {
    "NON-Address": {
      "message": "\u7d22\u5f15 NON-Address \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

flink_tablea

{
  "message": "\u8868 flink_tablea \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tablea`;

tm_userarea

{
  "message": "\u8868 tm_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProCode` varchar(50) DEFAULT NULL COMMENT '省份Code',
  `AreaCnt` int(11) DEFAULT NULL COMMENT '区域覆盖人数',
  PRIMARY KEY (`Id`),
  KEY `1` (`ProviderCode`),
  KEY `2` (`ProCode`)
) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8

job

{
  "message": "\u8868 job \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `job` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `StateId` int(11) DEFAULT NULL,
  `StateName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InvocationData` longtext NOT NULL,
  `Arguments` longtext NOT NULL,
  `CreatedAt` datetime(6) NOT NULL,
  `ExpireAt` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Job_StateName` (`StateName`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

de_xichashiti20220523150128431

{
  "message": "\u8868 de_xichashiti20220523150128431 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_xichashiti20220523150128431` (
  `Id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `x1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'dataText',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='喜茶实体'

tm_usermapsummary

{
  "message": "\u8868 tm_usermapsummary \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_usermapsummary` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `1` (`AreaCode`),
  KEY `2` (`AreaType`),
  KEY `3` (`OrderTypeName`),
  KEY `4` (`ProviderCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='智能工单大屏_服务人员地图明细'

workflownoderelatedactors_bak

{
  "message": "\u8868 workflownoderelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownoderelatedactors_bak`;

workflowitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_userinfoa20210727

{
  "message": "\u8868 tm_userinfoa20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfoa20210727`;

tb_userfeedetail

{
  "message": "\u8868 tb_userfeedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userfeedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(UF)',
  `UserInfoId` varchar(12) DEFAULT NULL COMMENT 'tb_userinfo.id',
  `LoginName` varchar(20) DEFAULT NULL COMMENT '用户账号',
  `FeeGroupCode` varchar(50) DEFAULT NULL COMMENT '费用标准组code',
  `FeeItemId` varchar(12) DEFAULT NULL COMMENT '费用项目ID(tb_feeiteminfo.id)',
  `ServiceSubjectCode` varchar(50) DEFAULT NULL COMMENT '服务科目code(tb_servicesubject.code)',
  `RuleJson` json DEFAULT NULL COMMENT '条件JSON',
  `Price` decimal(10,2) DEFAULT '0.00' COMMENT '标准费用/分佣比例',
  `EffectDate` date DEFAULT NULL COMMENT '生效日期',
  `EffectStatus` smallint(6) DEFAULT NULL COMMENT '生效状态(0-待生效,1-已生效,2-已过期)',
  `IfShow` smallint(6) DEFAULT NULL COMMENT '是否展示(0-不展示,1-展示)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` varchar(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  `v_Power` decimal(18,1) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')))) VIRTUAL COMMENT '(CHP)功率',
  `v_CustomerName` varchar(100) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')))) VIRTUAL COMMENT '(CHP)客户名称',
  `v_CustomerId` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')))) VIRTUAL COMMENT '(CHP)客户姓名',
  `v_Line` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')))) VIRTUAL COMMENT '(CHP)线缆(米)',
  `v_BrandCode` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')))) VIRTUAL COMMENT '(CHP)品牌标准code',
  PRIMARY KEY (`Id`),
  KEY `NON-UserInfoId` (`UserInfoId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-FeeItemId` (`FeeItemId`) USING BTREE,
  KEY `NON-ServiceSubjectCode` (`ServiceSubjectCode`) USING BTREE,
  KEY `NON-EffectDate` (`EffectDate`) USING BTREE,
  KEY `NON-FeeGroupCode` (`FeeGroupCode`) USING BTREE,
  KEY `NON-IfShow` (`IfShow`) USING BTREE,
  KEY `NON-v_CustomerName` (`v_CustomerName`),
  KEY `NON-v_CustomerId` (`v_CustomerId`),
  KEY `NON-v_Line` (`v_Line`),
  KEY `NON-v_BrandCode` (`v_BrandCode`),
  KEY `NON-v_Power` (`v_Power`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩团队管理人员费用信息表'

tb_afcpaymentreport

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_afcworkfinanceinfo

{
  "columns": {
    "EntrustAmount": {
      "message": "\u5217 EntrustAmount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PaymentPeriod": {
      "type": {
        "source": "varchar(100)",
        "target": "int(11)"
      }
    },
    "Performance": {
      "message": "\u5217 Performance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodeactions_bak

{
  "message": "\u8868 workflownodeactions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactions_bak`;

tb_workorderinfo_test

{
  "message": "\u8868 tb_workorderinfo_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinfo_test` (
  `Id` varchar(36) NOT NULL COMMENT '主键(WI)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '申请编码',
  `SourceType` smallint(6) DEFAULT NULL COMMENT '工单来源(0工单下单1智车品2客户接口3LCRM下单4OCRM下单5平安私有云6金融SAAS推送7车务推送)',
  `OrderType` varchar(50) DEFAULT NULL COMMENT '工单类型(sys_ordertypeinfo.Code)',
  `CreateType` smallint(6) DEFAULT NULL COMMENT '工单建单方式(来源二级分类)(1批量导入)',
  `ServiceProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态(basic_workflowstatus.WorkStatus)',
  `CustomerId` char(12) DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreId` char(12) DEFAULT NULL COMMENT '门店Id',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustStoreCode` varchar(50) DEFAULT NULL COMMENT '门店Code',
  `PreCustStoreId` char(12) DEFAULT NULL COMMENT '客户接口下单门店Id',
  `PreCustStoreName` varchar(100) DEFAULT NULL COMMENT '客户接口下单门店名称',
  `CustSettleId` char(12) DEFAULT NULL COMMENT '结算单位Id',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `IsCustomer` tinyint(1) NOT NULL COMMENT '是否为客户(0否1是)',
  `CustCoopType` smallint(6) DEFAULT NULL COMMENT '客户是否有合作商品(1中瑞2非中瑞3中瑞+非中瑞)',
  `ProCode` varchar(10) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(10) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '地区Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '地区名称',
  `InstallAddress` varchar(200) DEFAULT NULL COMMENT '加装地址',
  `InstallTime` datetime DEFAULT NULL COMMENT '加装时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `SecondLinkTel` varchar(20) DEFAULT NULL COMMENT '第二联系电话',
  `SecondLinkMan` varchar(50) DEFAULT NULL COMMENT '第二联系人',
  `WarehouseId` char(12) DEFAULT NULL COMMENT '发货一级仓Id',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '发货一级仓名称',
  `Remark` varchar(500) DEFAULT NULL COMMENT '客户备注',
  `IsUrgent` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检修工单是否紧急(0否1是)',
  `CustUniqueSign` varchar(50) DEFAULT NULL COMMENT '客户唯一标识',
  `CreatePersonCode` varchar(50) DEFAULT NULL COMMENT '建单人Code',
  `CreatePersonName` varchar(50) DEFAULT NULL COMMENT '建单人姓名',
  `EffectiveTime` datetime DEFAULT NULL COMMENT '工单生效时间',
  `EffectiveSuccessfulTime` datetime DEFAULT NULL COMMENT '下单成功生效时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `LastUpdateTimeStamp` bigint(20) DEFAULT (unix_timestamp(now(3))) COMMENT '最近更新时间',
  `LastUpdateTimeStamp1` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  PRIMARY KEY (`Id`),
  KEY `LastUpdateTimeStamp1` (`LastUpdateTimeStamp1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单信息表'

tb_workgoodsinfo

{
  "columns": {
    "ExtraJson": {
      "message": "\u5217 ExtraJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallFailReason": {
      "message": "\u5217 InstallFailReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallResult": {
      "message": "\u5217 InstallResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_ChargerType": {
      "message": "\u5217 v_ChargerType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_Power": {
      "message": "\u5217 v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_Power": {
      "message": "\u7d22\u5f15 NON-v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarUserTel": {
      "message": "\u7d22\u5f15 NON-v_chpCarUserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

move_workorder2023

{
  "columns": {
    "IsConsume": {
      "message": "\u5217 IsConsume \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "1": {
      "message": "\u7d22\u5f15 1 \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-BatchNo": {
      "message": "\u7d22\u5f15 NON-BatchNo \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `move_workorder2023` DROP COLUMN `IsConsume`;
ALTER TABLE `move_workorder2023` DROP INDEX `NON-BatchNo`;

tmp_districtyx3

{
  "message": "\u8868 tmp_districtyx3 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx3` (
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_ordertotalcnt

{
  "message": "\u8868 home_ordertotalcnt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordertotalcnt` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CntType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数量类型(1下单量2完成量3关闭量4质检量5服务客数量6服务施工人数)',
  `CntNum` int(11) NOT NULL DEFAULT '0' COMMENT '总量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CntType` (`CntType`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_业务累计服务信息'

workflowcompletecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

check_workflowjsonexclude

{
  "message": "\u8868 check_workflowjsonexclude \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsonexclude` (
  `WorkOrderId` char(12) NOT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`WorkOrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=49 ROW_FORMAT=DYNAMIC COMMENT='工作流冗余数据排除单据'

workflowrelatedactors_bak

{
  "message": "\u8868 workflowrelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowrelatedactors_bak`;

vi_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_remarkinfo

{
  "indexes": {
    "NON-RemarkTime": {
      "message": "\u7d22\u5f15 NON-RemarkTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_chprpappcode

{
  "message": "\u8868 tmp_chprpappcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprpappcode` (
  `AppCode` varchar(100) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`AppCode`),
  KEY `AppCode` (`AppCode`),
  KEY `WorkStatus` (`WorkStatus`),
  KEY `BatchNo` (`BatchNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩明细表导出APPCODE及批次(即用即删)_长期表'

tb_userworkphonedetail

{
  "message": "\u8868 tb_userworkphonedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphonedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WH)',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机主表ID(tb_userworkphoneinfo.Id)',
  `ConnectTime` datetime DEFAULT NULL COMMENT '沟通时间(通话/微信语音-[通话时间]、短信-[发送/接收时间]、微信-[最近沟通时间])',
  `ConnectInfo` int(11) DEFAULT NULL COMMENT '沟通情况(通话/微信语音-[通话时长(秒)]、微信-[聊天记录字符数])',
  `ConnectType` smallint(6) DEFAULT '0' COMMENT '沟通方式(0-无数据,1-呼入,2-呼出,3-接收,4-发送)',
  `ConnectStatus` smallint(6) DEFAULT '0' COMMENT '接通状态(0-无数据,1-接通,2-未接通)',
  `RecordDay` date DEFAULT NULL COMMENT '微信记录日期',
  `RecordTime` int(11) DEFAULT NULL COMMENT '微信记录时间(1[0:00:00~5:59:59];2[6:00:00~11:59:59];3[12:00:00~17:59:59];4[18:00:00~23:59:59])',
  `ChatHistory` json DEFAULT NULL COMMENT '聊天记录Json',
  `DataInfo` text COMMENT '数据信息(短信内容)',
  `Url` varchar(500) DEFAULT NULL COMMENT '附件链接',
  `ExternalId` varchar(100) DEFAULT NULL COMMENT '外部id',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/数据同步时间',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `DeletedAt` datetime DEFAULT NULL COMMENT '删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0:否,1:是)',
  PRIMARY KEY (`Id`),
  KEY `CreatedAt` (`CreatedAt`),
  KEY `RecordTime` (`RecordTime`),
  KEY `RecordDay` (`RecordDay`),
  KEY `ConnectTime` (`ConnectTime`),
  KEY `ConnectStatus` (`ConnectStatus`),
  KEY `ExternalId` (`ExternalId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机沟通信息冗余表'

tmp_districtyx2

{
  "message": "\u8868 tmp_districtyx2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx2` (
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `市编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userworkphoneinfo_backup

{
  "message": "\u8868 tb_userworkphoneinfo_backup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo_backup` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

tmp_canaltest2

{
  "message": "\u8868 tmp_canaltest2 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest2`;

workflownodes

{
  "columns": {
    "DataDictionaryId": {
      "type": {
        "source": "varchar(36)",
        "target": "char(36)"
      }
    },
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_canaltest1

{
  "message": "\u8868 tmp_canaltest1 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest1`;

tm_meigui

{
  "message": "\u8868 tm_meigui \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_meigui`;

tb_riskhistoryorder

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

tb_workserviceinfo

{
  "columns": {
    "InstitutionCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(20)"
      }
    },
    "WorkerCode": {
      "message": "\u5217 WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerId": {
      "message": "\u5217 WorkerId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerName": {
      "message": "\u5217 WorkerName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-InstitutionCode": {
      "message": "\u7d22\u5f15 NON-InstitutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkerCode": {
      "message": "\u7d22\u5f15 NON-WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_persons20250212

{
  "message": "\u8868 tm_persons20250212 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250212` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

工作簿2

{
  "message": "\u8868 \u5de5\u4f5c\u7c3f2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `工作簿2` (
  `产品线` text,
  `一级组织` text,
  `二级组织` text,
  `三级组织` text,
  `项目名称` text,
  `版本号` text,
  `优先级别` text,
  `严重级别` text,
  `发生时间` text,
  `是否为客户投诉` text,
  `问题类型` text,
  `问题大类` text,
  `问题小类` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp

{
  "message": "\u8868 tmp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp` (
  `A` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userclockin_log

{
  "message": "\u8868 tb_userclockin_log \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockin_log` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `StartTime` datetime DEFAULT NULL COMMENT '上班时间',
  `EndTime` datetime DEFAULT NULL COMMENT '下班时间',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-StartTime` (`StartTime`) USING BTREE,
  KEY `NON-EndTime` (`EndTime`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=418115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡日志表(31天)'

tb_workbussinessjsoninfo

{
  "columns": {
    "LastUpdateTimeStamp": {
      "default": {
        "source": "CURRENT_TIMESTAMP",
        "target": "CURRENT_TIMESTAMP(3)"
      },
      "extra": {
        "source": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP",
        "target": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP(3)"
      },
      "type": {
        "source": "timestamp",
        "target": "timestamp(3)"
      }
    },
    "v_CustomerAuditStatus": {
      "message": "\u5217 v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_chpCarModel": {
      "message": "\u5217 v_chpCarModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_need_reinstall": {
      "message": "\u5217 v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireDeviceModel": {
      "message": "\u5217 v_tireDeviceModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInflationPosition": {
      "message": "\u5217 v_tireInflationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInspectedVehicleCount": {
      "message": "\u5217 v_tireInspectedVehicleCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInstallationMethod": {
      "message": "\u5217 v_tireInstallationMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIsSupplementaryOrder": {
      "message": "\u5217 v_tireIsSupplementaryOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIssueSummary": {
      "message": "\u5217 v_tireIssueSummary \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNeedOuterTireRemoval": {
      "message": "\u5217 v_tireNeedOuterTireRemoval \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNumber": {
      "message": "\u5217 v_tireNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePlateNumber": {
      "message": "\u5217 v_tirePlateNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePosition": {
      "message": "\u5217 v_tirePosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeReason": {
      "message": "\u5217 v_tirePositionChangeReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeSuggestion": {
      "message": "\u5217 v_tirePositionChangeSuggestion \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePressure": {
      "message": "\u5217 v_tirePressure \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalCount": {
      "message": "\u5217 v_tireRemovalCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalInstallationPosition": {
      "message": "\u5217 v_tireRemovalInstallationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalReason": {
      "message": "\u5217 v_tireRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeId": {
      "message": "\u5217 v_tireRepairTypeId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeName": {
      "message": "\u5217 v_tireRepairTypeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementReason": {
      "message": "\u5217 v_tireReplacementReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementRemovalReason": {
      "message": "\u5217 v_tireReplacementRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "UNI-WORKORDERID": {
      "message": "\u7ea6\u675f UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "NON-DynIsHelpers": {
      "message": "\u7d22\u5f15 NON-DynIsHelpers \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-DynVinNumber": {
      "message": "\u7d22\u5f15 NON-DynVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-chpOrderCompleteTime": {
      "message": "\u7d22\u5f15 NON-chpOrderCompleteTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CompleteAging": {
      "message": "\u7d22\u5f15 NON-v_CompleteAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CustomerAuditStatus": {
      "message": "\u7d22\u5f15 NON-v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OrderRelationId": {
      "message": "\u7d22\u5f15 NON-v_OrderRelationId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OutCardDate": {
      "message": "\u7d22\u5f15 NON-v_OutCardDate \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 NON-v_PostFillWorkOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotAging": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotResult": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitStatus": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitTime": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpActualSolutionCode": {
      "message": "\u7d22\u5f15 NON-v_chpActualSolutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarVinNumber": {
      "message": "\u7d22\u5f15 NON-v_chpCarVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpElectricityMetersType": {
      "message": "\u7d22\u5f15 NON-v_chpElectricityMetersType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpFactoryBrand": {
      "message": "\u7d22\u5f15 NON-v_chpFactoryBrand \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpNextFollowTime": {
      "message": "\u7d22\u5f15 NON-v_chpNextFollowTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpSurveyInstallType": {
      "message": "\u7d22\u5f15 NON-v_chpSurveyInstallType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_need_reinstall": {
      "message": "\u7d22\u5f15 NON-v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UNI-WORKORDERID": {
      "message": "\u7d22\u5f15 UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_OrderColor": {
      "message": "\u7d22\u5f15 v_OrderColor \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 v_PostFillWorkOrder \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_afcAuditPassTime": {
      "message": "\u7d22\u5f15 v_afcAuditPassTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `v_PostFillWorkOrder`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `UNI-WORKORDERID`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP CONSTRAINT `UNI-WORKORDERID`;

vi_workfakeoffline

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

workflowruntimestatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

有效任务工时明细

{
  "message": "\u8868 \u6709\u6548\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `有效任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL,
  `f13` varchar(255) DEFAULT NULL,
  `f14` varchar(255) DEFAULT NULL,
  `f15` varchar(255) DEFAULT NULL,
  `f16` varchar(255) DEFAULT NULL,
  `f17` varchar(255) DEFAULT NULL,
  `f18` varchar(255) DEFAULT NULL,
  `f19` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_cxhis

{
  "message": "\u8868 tmp_cxhis \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhis` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `TableName` varchar(100) DEFAULT NULL,
  `OldPrefix` varchar(20) DEFAULT NULL,
  `KeyPrefix` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `1` (`TableName`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='长享历史数据迁移临时表'

de_tb_merchant20231129094137713

{
  "message": "\u8868 de_tb_merchant20231129094137713 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant20231129094137713` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

tb_feeapplicationinfo

{
  "columns": {
    "ApplyFee": {
      "message": "\u5217 ApplyFee \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonCode": {
      "message": "\u5217 ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonName": {
      "message": "\u5217 ApplyPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyReason": {
      "type": {
        "source": "varchar(300)",
        "target": "varchar(100)"
      }
    },
    "ApplyWorkStatus": {
      "message": "\u5217 ApplyWorkStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AuditRemark": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(100)"
      }
    },
    "DynamicFormJson": {
      "message": "\u5217 DynamicFormJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeGroupCode": {
      "message": "\u5217 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonCode": {
      "message": "\u5217 LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonName": {
      "message": "\u5217 LastAuditPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditTime": {
      "message": "\u5217 LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeCode": {
      "message": "\u5217 OriginalPayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeName": {
      "message": "\u5217 OriginalPayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeCode": {
      "message": "\u5217 PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeName": {
      "message": "\u5217 PayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "RuleActionLogId": {
      "message": "\u5217 RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyLoginName": {
      "message": "\u5217 SubsidyLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyName": {
      "message": "\u5217 SubsidyName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyRemark": {
      "message": "\u5217 SubsidyRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyStatus": {
      "message": "\u5217 SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u5217 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_SettleMethod": {
      "message": "\u5217 v_SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "FeeGroupCode": {
      "message": "\u7d22\u5f15 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-ApplyPersonCode": {
      "message": "\u7d22\u5f15 NON-ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-AuditStatus": {
      "message": "\u7d22\u5f15 NON-AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditPersonCode": {
      "message": "\u7d22\u5f15 NON-LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditTime": {
      "message": "\u7d22\u5f15 NON-LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-PayeeCode": {
      "message": "\u7d22\u5f15 NON-PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-RuleActionLogId": {
      "message": "\u7d22\u5f15 NON-RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-SubsidyStatus": {
      "message": "\u7d22\u5f15 NON-SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SettleMethod": {
      "message": "\u7d22\u5f15 SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u7d22\u5f15 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_resourceitem

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workorderoperationlog

{
  "message": "\u8868 tb_workorderoperationlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderoperationlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `MainId` varchar(50) DEFAULT NULL COMMENT '父表ID(tb_afcreceiverecordinfo.id,tb_userworkphoneinfo.Id,tb_userfeedetail.FeeGroupCode)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `LogType` int(11) NOT NULL COMMENT '日志类别(1-金融运营回款日志,2-工作手机信息匹配日志,3-充电桩团队管理人员费用信息修改日志,4-车电匹配失败(临时),5-团队管理变更日志)',
  `Object` varchar(50) DEFAULT NULL COMMENT '操作对象(回款登记/回款信息)',
  `OperCode` varchar(50) DEFAULT NULL COMMENT '操作人Code',
  `OperName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `Operation` varchar(50) DEFAULT NULL COMMENT '操作',
  `SummaryInfo` varchar(500) DEFAULT NULL COMMENT '日志汇总',
  `ExtraJson` json DEFAULT NULL COMMENT '其它补充信息',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间/操作时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-MainId` (`MainId`) USING BTREE,
  KEY `NON-LogType` (`LogType`) USING BTREE,
  KEY `NON-OperCode` (`OperCode`) USING BTREE,
  KEY `NON-OperName` (`OperName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=121230 DEFAULT CHARSET=utf8 COMMENT='通用操作日志表'

vi_riskworkorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_chpworkbussinessjsoninfo

{
  "message": "\u8868 tb_chpworkbussinessjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_chpworkbussinessjsoninfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `BussinessJson` json DEFAULT NULL COMMENT '处理人信息JSON',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  `LastUpdateTimeStamp` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  `v_chpWXAddProgress` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpWXAddProgress'))) VIRTUAL COMMENT '(CHP)车主微信添加进度',
  `v_chpCarUserName` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserName'))) VIRTUAL COMMENT '(CHP)车主姓名',
  `v_chpCarUserTel` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserTel'))) VIRTUAL COMMENT '(CHP)车主电话',
  `v_chpSurveyInstallType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.InstallType'))) VIRTUAL COMMENT '(CHP)安装方式',
  `v_chpElectricityMetersType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.ElectricityMetersType'))) VIRTUAL COMMENT '(CHP)电表类型',
  `v_chpFirstContactRole` smallint(6) GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')) = _utf8mb4''),0,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')))) VIRTUAL COMMENT '(CHP)首联人角色(1-运营,2-服务人员)',
  `v_chpNextFollowTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4''),NULL,if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime'))))) VIRTUAL COMMENT '(CHP)下次跟进时间',
  `v_chpCarVinNumber` varchar(100) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarVinNumber'))) VIRTUAL COMMENT '(CHP)车架号',
  `v_ChpLineActualUsage` int(11) GENERATED ALWAYS AS ((if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage'))) + if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage'))))) VIRTUAL COMMENT '(CHP)线缆实际用量(电缆硬线+电缆软线实际用量)',
  `v_chpFactoryBrand` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFactoryBrand'))) VIRTUAL COMMENT '(CHP)主机厂品牌',
  `v_chpActualSolutionCode` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpActualSolutionCode'))) VIRTUAL COMMENT '(CHP)实际处理方案Code',
  `v_chpOrderCompleteTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')))) VIRTUAL COMMENT '(CHP)工单完成时间',
  PRIMARY KEY (`Id`,`DynamicId`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-DynamicId` (`DynamicId`) USING BTREE,
  KEY `NON-LastUpdateTimeStamp` (`LastUpdateTimeStamp`),
  KEY `NON-v_chpWXAddProgress` (`v_chpWXAddProgress`) USING BTREE,
  KEY `NON-v_chpCarUserName` (`v_chpCarUserName`) USING BTREE,
  KEY `NON-v_chpCarUserTel` (`v_chpCarUserTel`) USING BTREE,
  KEY `NON-v_chpSurveyInstallType` (`v_chpSurveyInstallType`) USING BTREE,
  KEY `NON-v_chpElectricityMetersType` (`v_chpElectricityMetersType`) USING BTREE,
  KEY `NON-v_chpFirstContactRole` (`v_chpFirstContactRole`) USING BTREE,
  KEY `NON-v_chpNextFollowTime` (`v_chpNextFollowTime`) USING BTREE,
  KEY `NON-v_chpCarVinNumber` (`v_chpCarVinNumber`) USING BTREE,
  KEY `NON-v_chpFactoryBrand` (`v_chpFactoryBrand`) USING BTREE,
  KEY `NON-v_chpActualSolutionCode` (`v_chpActualSolutionCode`) USING BTREE,
  KEY `NON-chpOrderCompleteTime` (`v_chpOrderCompleteTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4131 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='业务域_工单业务信息JOSN冗余表(CHP)'

workflowitems_bak

{
  "message": "\u8868 workflowitems_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowitems_bak`;

basic_ordersearchproperty

{
  "columns": {
    "DataSourceJson": {
      "message": "\u5217 DataSourceJson \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "DataSourceJsons": {
      "message": "\u5217 DataSourceJsons \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Deleted": {
      "nullable": {
        "source": true,
        "target": false
      }
    }
  }
}

变更SQL:

ALTER TABLE `basic_ordersearchproperty` DROP COLUMN `DataSourceJson`;

tmp_workimp_mid

{
  "message": "\u8868 tmp_workimp_mid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp_mid` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `workorderid` varchar(12) DEFAULT NULL,
  `ordertype` varchar(200) DEFAULT NULL,
  `SubjectCodeSummary` varchar(200) DEFAULT NULL,
  `SubjectNameSummary` varchar(200) DEFAULT NULL,
  `SubjectNum` int(11) DEFAULT NULL,
  `appcode` varchar(200) DEFAULT NULL,
  `custname` varchar(200) DEFAULT NULL,
  `customerid` varchar(200) DEFAULT NULL,
  `CustStoreId` varchar(200) DEFAULT NULL,
  `storename` varchar(200) DEFAULT NULL,
  `CustStoreCode` varchar(200) DEFAULT NULL,
  `CustSettleId` varchar(200) DEFAULT NULL,
  `settlename` varchar(200) DEFAULT NULL,
  `brandname` varchar(200) DEFAULT NULL,
  `procode` varchar(200) DEFAULT NULL,
  `proname` varchar(200) DEFAULT NULL,
  `citycode` varchar(200) DEFAULT NULL,
  `cityname` varchar(200) DEFAULT NULL,
  `areacode` varchar(200) DEFAULT NULL,
  `areaname` varchar(200) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  `carusername` varchar(200) DEFAULT NULL,
  `carusertel` varchar(200) DEFAULT NULL,
  `installperson` varchar(200) DEFAULT NULL,
  `loginname` varchar(200) DEFAULT NULL,
  `usercenterid` varchar(200) DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL,
  `rownum` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8192 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

home_worktimetrend

{
  "message": "\u8868 home_worktimetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_worktimetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `WorkHour` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工作时间段',
  `WorkDayCnt` int(11) NOT NULL DEFAULT '0' COMMENT '工作日完成数量',
  `WeekendCnt` int(11) NOT NULL DEFAULT '0' COMMENT '非工作日完成数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkHour` (`WorkHour`),
  KEY `NON_ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_近1周作业结束时间段分布'

workflowruntimesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

columnss

{
  "message": "\u8868 columnss \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `columnss` (
  `columnsss` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

common_ruleactionlog

{
  "message": "\u8868 common_ruleactionlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `common_ruleactionlog` (
  `Id` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键ID(AL)',
  `TargetId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '业务Id(tb_workorderinfo.Id)',
  `InputParams` json DEFAULT NULL COMMENT '输入参数json',
  `OutParams` json DEFAULT NULL COMMENT '输出参数json',
  `SubRuleCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则编码(common_subruleinfo.SubRuleCode)',
  `SubRuleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则名称(common_subruleinfo.SubRuleName)',
  `RuleTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规则类别编码(basic_datadictionary.code)',
  `VersionIndex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本',
  `IsMatching` int(11) DEFAULT NULL COMMENT '是否匹配(1是 0否)',
  `ExceptionInfo` varchar(200) DEFAULT NULL COMMENT '异常信息',
  `MatchRulesJson` json DEFAULT NULL COMMENT '匹配条件Json',
  `ActionsJson` json DEFAULT NULL COMMENT '执行动作Json',
  `RuleMessageJson` json DEFAULT NULL COMMENT '规则报文json',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商Code',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-OrgCode` (`OrgCode`) USING BTREE,
  KEY `NON-TargetId` (`TargetId`) USING BTREE,
  KEY `NON-RuleTypeCode` (`RuleTypeCode`) USING BTREE,
  KEY `NON-SubRuleCode` (`SubRuleCode`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_规则操作日志表'

tb_phoneorderrelation

{
  "message": "\u8868 tb_phoneorderrelation \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_phoneorderrelation` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机信息表ID(tb_userworkphoneinfo.Id)',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID(tb_workorderinfo.Id)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编号',
  `CustomerId` varchar(100) DEFAULT NULL COMMENT '工单客户ID',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '工单客户名称',
  `NegotiatorId` varchar(12) DEFAULT NULL COMMENT '谈判记录ID(tb_afcnegotiationrecordinfo.Id)',
  `NegotiatorTime` datetime DEFAULT NULL COMMENT '谈判记录生成时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NegotiatorId` (`NegotiatorId`),
  KEY `NegotiatorTime` (`NegotiatorTime`),
  KEY `PhoneInfoId` (`PhoneInfoId`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=2933 DEFAULT CHARSET=utf8 COMMENT='工作手机与工单关系表(匹配结果表)'

tmp_userclockininfo

{
  "message": "\u8868 tmp_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL,
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工打卡设置信息表'

vi_workorderforsearch

{
  "message": "\u8868 vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

tb_invoiceinfo

{
  "columns": {
    "Company": {
      "message": "\u5217 Company \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Conpany": {
      "message": "\u5217 Conpany \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "MainId": {
      "message": "\u5217 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "MainId": {
      "message": "\u7d22\u5f15 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_invoiceinfo` DROP COLUMN `Conpany`;
ALTER TABLE `tb_invoiceinfo` DROP COLUMN `MainId`;
ALTER TABLE `tb_invoiceinfo` DROP INDEX `MainId`;

hangfire_distributedlock

{
  "indexes": {
    "Resource": {
      "message": "\u7d22\u5f15 Resource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_district_bak_a

{
  "message": "\u8868 basic_district_bak_a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_district_bak_a`;

de_testuser

{
  "message": "\u8868 de_testuser \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

vi_workorderfilmdetail_2

{
  "message": "\u8868 vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

tb_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

tm_persons2

{
  "message": "\u8868 tm_persons2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons2` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

vi_workorderrecheckdetail

{
  "message": "\u8868 vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

home_completerate

{
  "message": "\u8868 home_completerate \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_completerate` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `7CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '7日内完成单量',
  `15CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '15日内完成单量',
  `30CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '30日内完成单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_工单完成率'

slow1119

{
  "message": "\u8868 slow1119 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1119` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

teststruct

{
  "message": "\u8868 teststruct \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `teststruct` (
  `TABLE_CATALOG` text,
  `TABLE_SCHEMA` text,
  `TABLE_NAME` text,
  `COLUMN_NAME` text,
  `ORDINAL_POSITION` int(11) DEFAULT NULL,
  `COLUMN_DEFAULT` int(11) DEFAULT NULL,
  `IS_NULLABLE` text,
  `DATA_TYPE` text,
  `CHARACTER_MAXIMUM_LENGTH` double DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` double DEFAULT NULL,
  `NUMERIC_PRECISION` int(11) DEFAULT NULL,
  `NUMERIC_SCALE` int(11) DEFAULT NULL,
  `DATETIME_PRECISION` int(11) DEFAULT NULL,
  `CHARACTER_SET_NAME` text,
  `COLLATION_NAME` text,
  `COLUMN_TYPE` text,
  `COLUMN_KEY` text,
  `EXTRA` text,
  `PRIVILEGES` text,
  `COLUMN_COMMENT` text,
  `GENERATION_EXPRESSION` text,
  `SRS_ID` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_formlastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

vi_chpworkorderdetial

{
  "message": "\u8868 vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

workflowruntimetimingmsgsends

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_ordercount

{
  "message": "\u8868 home_ordercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `FinishedCnt` int(11) NOT NULL DEFAULT '0' COMMENT '完单量',
  `FinishedRate` int(11) DEFAULT NULL COMMENT '完单率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=20649 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_单据信息'

move_hisworkorderinfo

{
  "message": "\u8868 move_hisworkorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `move_hisworkorderinfo`;

basic_userroleinfo

{
  "indexes": {
    "NON-UserCenterId": {
      "message": "\u7d22\u5f15 NON-UserCenterId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-UserCenterId\nSELECT * FROM tb_whchangelog": {
      "message": "\u7d22\u5f15 NON-UserCenterId\nSELECT * FROM tb_whchangelog \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `basic_userroleinfo` DROP INDEX `NON-UserCenterId
SELECT * FROM tb_whchangelog`;

tb_afcfeedetail

{
  "indexes": {
    "NON-WorkOrderId-PriceTypeCode": {
      "message": "\u7d22\u5f15 NON-WorkOrderId-PriceTypeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_datalastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

home_ordercusttop

{
  "message": "\u8868 home_ordercusttop \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttop` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_累计下单客户TOP10'

tmp_cxhisorderid

{
  "message": "\u8868 tmp_cxhisorderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhisorderid` (
  `Id` varchar(20) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='长享历史数据工单Id'

vi_workorderlistforafc

{
  "message": "\u8868 vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

rp_chpworkorderdetail

{
  "message": "\u8868 rp_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_chpworkorderdetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `WorkOrderId` varchar(36) DEFAULT NULL COMMENT '工单ID',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编码',
  `OrderType` varchar(50) DEFAULT NULL,
  `SubjectNameSummary` varchar(100) DEFAULT NULL COMMENT '科目名称汇总',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `ProName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下单备注',
  `FirstConcatRole` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联人角色',
  `chpCarUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主姓名',
  `chpCarUserTel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主电话',
  `chpCarVinNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车架号',
  `IsWithPile` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '带桩上门',
  `IsSelfBuiltHouse` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否自建房',
  `CarParkin` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车位',
  `ProtectionBox` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '保护箱',
  `InstallType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装方式',
  `GetElectricityType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电方式',
  `Schedule` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '立表进度',
  `ElectricityMetersType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '电表类型',
  `PowerPointLocation` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电点位置',
  `WechatNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信号/群名',
  `chpWXAddProgress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信添加进度',
  `FirstContactRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联备注',
  `WorkStatusName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CurrentPerson` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '当前处理人',
  `SubmmitTime` datetime DEFAULT NULL COMMENT '工单提交时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `chpNextFollowTime` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `LastAppointStatus` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最新异常反馈类型',
  `LastFailAppointConcat` varchar(500) DEFAULT NULL COMMENT '最新异常反馈详情(取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间)',
  `AllFailAppointConcat` text COMMENT '异常反馈记录(按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间)',
  `SurveyTime` datetime DEFAULT NULL COMMENT '勘测完成时间',
  `CompleteTime` datetime DEFAULT NULL COMMENT '安装完成时间(安装)/施工完成时间(售后)',
  `ClosedAt` datetime DEFAULT NULL COMMENT '关闭时间',
  `AuditRejectRemark` text COMMENT '质检不通过备注(勘测、安装/售后)每次不通过的备注都放一起。',
  `AuditRejectNum` int(11) DEFAULT NULL COMMENT '质检驳回次数(勘测驳回+安装驳回/售后驳回的次数)',
  `LastAuditRejectTime` datetime DEFAULT NULL COMMENT '最新质检驳回时间',
  `AuditTime` datetime DEFAULT NULL COMMENT '(安装/售后)质检通过时间',
  `IsAddition` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否存在增项',
  `LastSurveyAuditCode` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人工号',
  `LastSurveyAuditName` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人姓名',
  `LastInstallAuditCode` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人工号',
  `LastInstallAuditName` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人姓名',
  `AdditionFeeSettleRoad` varchar(100) DEFAULT NULL COMMENT '增项结算路径',
  `AdditionFeePayTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '结算方式',
  `AdditionFeeChangeRemark` varchar(200) DEFAULT NULL COMMENT '增项结算修改原因',
  `AdditionFeeDetail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '增项明细',
  `AdditionFeePrice` decimal(18,5) DEFAULT NULL COMMENT '增项费(元)',
  `AdditionFeePaySource` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项付款方式',
  `AdditionFeeOfflinePayer` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项打款人',
  `AdditionFeePayTime` datetime DEFAULT NULL COMMENT '增项打款时间',
  `ServiceGoodsName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装服务商品',
  `ServiceGoodsPrice` decimal(18,5) DEFAULT NULL COMMENT '安装服务商品价格',
  `Power` decimal(18,1) DEFAULT NULL COMMENT '功率',
  `FirstPartySettleLength` varchar(50) DEFAULT NULL COMMENT '甲方结算套餐长度',
  `PackageLength` varchar(50) DEFAULT NULL COMMENT '车企套餐长度',
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '品牌',
  `chpBrandInfoURL` varchar(200) DEFAULT NULL COMMENT '品牌资料',
  `ProjectWarrantyPeriod` int(11) DEFAULT NULL COMMENT '工程质保期(年)',
  `SurveyName` varchar(45) DEFAULT NULL COMMENT '勘测人姓名',
  `Surveycode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测人账号',
  `InstallName` varchar(100) DEFAULT NULL COMMENT '安装人姓名(安装)/施工人姓名(售后)',
  `InstallCode` varchar(50) DEFAULT NULL COMMENT '安装人Code(安装)/施工人Code(售后)',
  `Distance` decimal(18,1) DEFAULT NULL COMMENT '单程服务距离(km)',
  `InstallAscription` varchar(50) DEFAULT NULL COMMENT '安装人员外勤属性(安装)/施工人属性(售后)',
  `FirstRecordTime` datetime DEFAULT NULL COMMENT '首次提交安装结果时间',
  `LastRecordTime` datetime DEFAULT NULL COMMENT '最新一次提交安装结果时间',
  `EmployeeAttributes` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装人员属性',
  `SurveyMethod` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测方式',
  `IndividualReason` varchar(200) DEFAULT NULL COMMENT '单独上门原因',
  `SurveyResult` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否继续安装',
  `ResultReason` varchar(200) DEFAULT NULL COMMENT '不安装原因',
  `SurveyRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测施工备注',
  `Seller` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '充电桩销售方',
  `GoodsName` varchar(50) DEFAULT NULL COMMENT '桩商品',
  `MaterialPrice` decimal(18,5) DEFAULT NULL COMMENT '桩价格',
  `GoodsSource` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '桩来源',
  `MaterialNo` varchar(50) DEFAULT NULL COMMENT '中瑞桩编码',
  `MaterialType` varchar(50) DEFAULT NULL COMMENT '充电桩类型',
  `EscrowMaterialType` varchar(50) DEFAULT NULL COMMENT '代管桩物料',
  `EscrowMaterialNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代管桩编码',
  `PileWarrantyPeriod` int(11) DEFAULT NULL COMMENT '电桩质保期(年)',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '充电桩出货仓库',
  `chpIsSelfWiring` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主是否自布线',
  `HardWire` text COMMENT '电缆硬线LM00008497(出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注)',
  `FlexibleCord` text COMMENT '电缆软线LM00008498',
  `Drivepipe` text COMMENT '套管LM00008502',
  `LeakageInsurance` text COMMENT '漏保LM00008500',
  `AirSwitchBox` text COMMENT '空开盒LM00008501',
  `ChargingPileColumn` text COMMENT '立柱LM00008499',
  `chpInstallRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装施工备注',
  `chpNextFollow` varchar(500) DEFAULT NULL COMMENT '安装后跟进记录',
  `CreatedAt` datetime DEFAULT NULL COMMENT '建单时间',
  `FirstConcatPersonCode` varchar(50) DEFAULT NULL COMMENT '首联人code',
  `FirstConcatPersonName` varchar(100) DEFAULT NULL COMMENT '首联人name',
  `FirstConcatTime` datetime DEFAULT NULL COMMENT '首联人时间',
  `ChpLineActualUsage` int(11) DEFAULT NULL COMMENT '线缆实际用量(电缆硬线+电缆软线实际用量)',
  `chpGoodsPackageSubsidyPrice` decimal(18,4) DEFAULT NULL COMMENT '充电桩补贴套餐价格)',
  `LastApplyReason` varchar(200) DEFAULT NULL COMMENT '最新异常反馈的申请原因',
  `chpCarModel` varchar(200) DEFAULT NULL COMMENT '车型(售后)',
  `chpProModel` varchar(200) DEFAULT NULL COMMENT '产品型号(售后)',
  `chpChargerNo` varchar(200) DEFAULT NULL COMMENT '桩编号(售后)',
  `chpOriginalInstallPerson` varchar(200) DEFAULT NULL COMMENT '原施工人(售后)',
  `chpFactoryBrand` varchar(200) DEFAULT NULL COMMENT '主机厂品牌(售后)',
  `chpProblemDescription` varchar(600) DEFAULT NULL COMMENT '问题描述(售后)',
  `chpFaulttime` varchar(200) DEFAULT NULL COMMENT '故障时间(售后)',
  `chpFaultClass` varchar(200) DEFAULT NULL COMMENT '故障分类(售后)',
  `chpSuggestedSolution` varchar(600) DEFAULT NULL COMMENT '建议解决方案(售后)',
  `chpWarrantyStatus` varchar(60) DEFAULT NULL COMMENT '保修状态(售后)',
  `chpActualSolutionName` varchar(1000) DEFAULT NULL COMMENT '实际处理方案(实际处理方案为其它时展示详细处理信息)(售后)',
  `chpIfCharge` varchar(60) DEFAULT NULL COMMENT '是否收费(售后)',
  `chpAfterSaleRemark` varchar(600) DEFAULT NULL COMMENT '施工备注(售后)',
  `chpLogisticsNum` varchar(100) DEFAULT NULL COMMENT '物流单号(售后)',
  `chpShippingWarehouse` varchar(200) DEFAULT NULL COMMENT '出货仓库(售后)',
  `chpWarehouseMaterials` text COMMENT '所用物料(拼接)(售后)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  `chpMaterialSN` varchar(100) DEFAULT NULL COMMENT '故障物料SN',
  `chpWorkerSettlePrice` varchar(50) DEFAULT NULL COMMENT '优工结算价(总价)',
  `chpWorkerSettlementMethod` varchar(50) DEFAULT NULL COMMENT '客户结算价',
  `chpWorkerFeeRemark` varchar(500) DEFAULT NULL COMMENT '备注-操作人/操作时间',
  `chpInstallConditionDate` date DEFAULT NULL COMMENT '具备安装条件日期',
  `chpPileInventoryResults` varchar(50) DEFAULT NULL COMMENT '桩盘点结果',
  `chpColumnInventoryResults` varchar(50) DEFAULT NULL COMMENT '立柱盘点结果',
  `AdditionFeeCommissionRatio` varchar(50) DEFAULT NULL COMMENT '增项费分佣比例(%)',
  `AllSubsidy` decimal(20,2) DEFAULT NULL COMMENT '总费用',
  `InstallPriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-安装',
  `AfterSalePriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-售后',
  `ChargingPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '公桩计件(申请)',
  `LeakageInsuranceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '漏保补贴',
  `GalvanizedPipeSubsidy` decimal(20,2) DEFAULT NULL COMMENT '镀锌管补贴',
  `AdditionSubsidy` decimal(20,2) DEFAULT NULL COMMENT '增项',
  `LineSubsidy` decimal(20,2) DEFAULT NULL COMMENT '电缆补贴',
  `RemoteSubsidy` decimal(20,2) DEFAULT NULL COMMENT '远补',
  `CarSubsidy` decimal(20,2) DEFAULT NULL COMMENT '用车补贴',
  `BonusSubsidy` decimal(20,2) DEFAULT NULL COMMENT '奖金',
  `DifferenceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '差异补发',
  `ComplaintDeduction` decimal(20,2) DEFAULT NULL COMMENT '客诉扣款',
  `DifferenceDeduction` decimal(20,2) DEFAULT NULL COMMENT '差异扣除',
  `chpPilesNum` int(11) DEFAULT NULL COMMENT '(充电桩)桩数量',
  `chpGunsNum` int(11) DEFAULT NULL COMMENT '(充电桩)枪数量',
  `chpParkSpaceNum` int(11) DEFAULT NULL COMMENT '(充电桩)车位数量',
  `DispatchTime` datetime DEFAULT NULL COMMENT '勘测调度完成时间/调度完成时间',
  `CustomerAuditApprovalTime` datetime DEFAULT NULL COMMENT '客户审核通过时间',
  `chpOrderSource` varchar(50) DEFAULT NULL COMMENT '(充电桩)订单来源',
  `CurrentPersonCode` varchar(50) DEFAULT NULL COMMENT '当前处理人编号',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-CreatedAt` (`CreatedAt` DESC)
) ENGINE=InnoDB AUTO_INCREMENT=19432 DEFAULT CHARSET=utf8 COMMENT='充电桩已完成工单明细表'

tb_abnormalorder_log

{
  "columns": {
    "LastUpdatedTimestamp": {
      "message": "\u5217 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "MessageRemindJson": {
      "message": "\u5217 MessageRemindJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "LastUpdatedTimestamp": {
      "message": "\u7d22\u5f15 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_usermapdaily

{
  "message": "\u8868 home_usermapdaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdaily` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `Alng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `Alat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ServicerCnt` int(11) DEFAULT NULL COMMENT '覆盖人数',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=16639 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图日报'

tm_userinfo20210727

{
  "message": "\u8868 tm_userinfo20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfo20210727`;

basic_subjectclass

{
  "message": "\u8868 basic_subjectclass \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `basic_subjectclass` (
  `Id` char(12) NOT NULL COMMENT '主键(SS)',
  `TenantId` char(12) DEFAULT NULL COMMENT '租户Id',
  `ClassCode` varchar(50) DEFAULT NULL COMMENT '科目编码',
  `ClassName` varchar(100) DEFAULT NULL COMMENT '科目名称',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '创建人Id',
  `CreatedAt` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  `UpdatedById` varchar(36) DEFAULT NULL COMMENT '更新人Id',
  `UpdatedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '更新时间',
  `DeletedById` varchar(36) DEFAULT NULL COMMENT '删除人',
  `DeletedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '删除时间',
  `Deleted` tinyint(4) DEFAULT '0' COMMENT '是否删除(0否1是)',
  PRIMARY KEY (`Id`),
  KEY `NON-ClassCode` (`ClassCode`),
  KEY `NON-TenantId` (`TenantId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础信息域_服务科目分类'

workflowruntimeattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workjsoninfo

{
  "message": "\u8868 workjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `workjsoninfo` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsCustomer` tinyint(1) DEFAULT NULL,
  `CustCoopType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallTime` datetime DEFAULT NULL,
  `RequiredTime` datetime DEFAULT NULL,
  `LinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SourceType` smallint(6) DEFAULT NULL,
  `SecondLinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SecondLinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsUrgent` tinyint(1) DEFAULT NULL,
  `CustUniqueSign` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveTime` datetime DEFAULT NULL,
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveSuccessfulTime` datetime DEFAULT NULL,
  `CreatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) DEFAULT NULL,
  `AppointStatus` smallint(6) DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreateType` smallint(6) DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecCompleteTime` datetime DEFAULT NULL,
  `RecRecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecRecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfOrderCompletetime` datetime DEFAULT NULL,
  `WfAssignor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfDirectOrderAccept` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrTypeStatus` smallint(6) DEFAULT NULL,
  `WorkOdrCloseStatusName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrSuspendStatus` smallint(6) DEFAULT NULL,
  `WorkStatus` smallint(6) DEFAULT NULL,
  `WorkOdrClosedAt` datetime DEFAULT NULL,
  `AFCCreatedAt` datetime DEFAULT NULL,
  `AFCRetreatTime` datetime DEFAULT NULL,
  `AFCFollowFrequency` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AFCIfRemove` smallint(6) DEFAULT NULL,
  `AFCReturnedTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `VHSAppraisalStatus` smallint(6) DEFAULT NULL,
  `VHSReceiverLoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OperatingInfo` json DEFAULT NULL,
  `OperatedInfo` json DEFAULT NULL,
  `ServiceProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkflowInfo` json DEFAULT NULL,
  `WorkServiceSubject` json DEFAULT NULL,
  `AFCWorkFinanceRecord` json DEFAULT NULL,
  `AFCPaymentReport` json DEFAULT NULL,
  `VHSWorkFileReceiveInfo` json DEFAULT NULL,
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkAddressInfo` json DEFAULT NULL,
  `AFCLastNegotiatorTime` datetime DEFAULT NULL,
  `AFCFollowFrequencyType` smallint(6) DEFAULT NULL,
  `AFCCompleteType` smallint(6) DEFAULT NULL,
  `AFCReportDeadline` datetime DEFAULT NULL,
  `AFCUnFollowDays` bigint(20) DEFAULT NULL,
  `AFCAppointTime` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=2416 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=2684 ROW_FORMAT=DYNAMIC

vi_workorderlistforchp

{
  "message": "\u8868 vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

workflowcompletesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_vi_workstepinfo_2021

{
  "message": "\u8868 tm_vi_workstepinfo_2021 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_vi_workstepinfo_2021`;

tb_workfeeitem

{
  "indexes": {
    "NON-FeePurpose": {
      "message": "\u7d22\u5f15 NON-FeePurpose \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workresourceinfo

{
  "columns": {
    "ComparisonResults": {
      "message": "\u5217 ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceCode": {
      "message": "\u5217 ResourceCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ComparisonResults": {
      "message": "\u7d22\u5f15 NON-ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

test_service_info

{
  "message": "\u8868 test_service_info \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_service_info` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_custcolumn

{
  "indexes": {
    "NON-Value": {
      "message": "\u7d22\u5f15 NON-Value \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownoderelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderlistforchp_audit

{
  "message": "\u8868 vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

de_testuser20240327101659637

{
  "message": "\u8868 de_testuser20240327101659637 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser20240327101659637` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

home_userarea

{
  "message": "\u8868 home_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户姓名',
  `Ascription` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  `TeamCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队Code(basic_teaminfo.Code)',
  `TeamName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队名称',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProviderName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商名称',
  `OperateAttributes` smallint(6) DEFAULT NULL COMMENT '经营属性(0自营 1非自营)',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `CheckDate` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-TeamCode` (`TeamCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-CheckDate` (`CheckDate`),
  KEY `NON-OrderTypeName` (`OrderTypeName`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-UserId` (`UserId`),
  KEY `NON-CityCode` (`CityCode`),
  KEY `NON-Ascription` (`Ascription`),
  KEY `NON-LoginName` (`LoginName`)
) ENGINE=InnoDB AUTO_INCREMENT=327676 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础信息_人员覆盖区域信息'

tb_feeiteminfo

{
  "indexes": {
    "GenerationMode": {
      "message": "\u7d22\u5f15 GenerationMode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workresourceinfo

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderrecheckinfo

{
  "message": "\u8868 tb_workorderrecheckinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderrecheckinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `RecheckStatus` smallint(6) DEFAULT NULL COMMENT '复检状态:0.复检不通过;1.复检通过;2.待复检;',
  `RecheckContent` varchar(100) DEFAULT NULL COMMENT '复检不通过原因',
  `RecheckPersonCode` varchar(50) DEFAULT NULL COMMENT '复检人账号',
  `RecheckPersonName` varchar(50) DEFAULT NULL COMMENT '复检人名称',
  `FirstRecheckTime` datetime DEFAULT NULL COMMENT '首次复检时间',
  `RecheckPassTime` datetime DEFAULT NULL COMMENT '复检通过时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-RecheckPassTime` (`RecheckPassTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='业务域_复检工单信息表'

tm_workresourceinfo_20210705a

{
  "message": "\u8868 tm_workresourceinfo_20210705a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705a`;

workflowruntimesubscribemsgs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

counter

{
  "message": "\u8868 counter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `counter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Counter_Key` (`Key`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

home_ordercusttrend

{
  "message": "\u8868 home_ordercusttrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_TOP3客户下单量趋势'

tb_appointment

{
  "columns": {
    "Deleted": {
      "nullable": {
        "source": false,
        "target": true
      }
    }
  }
}

serviceinfo

{
  "message": "\u8868 serviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8

tmp_chprporderid

{
  "message": "\u8868 tmp_chprporderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprporderid` (
  `WorkOrderId` varchar(12) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`WorkOrderId`),
  KEY `WorkStatus` (`WorkStatus`) USING BTREE,
  KEY `Result` (`Result`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩明细表导出工单ID及批次(即用即删)_长期表'

flink_tableb

{
  "message": "\u8868 flink_tableb \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tableb`;

workflownodes_bak

{
  "message": "\u8868 workflownodes_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodes_bak`;

vi_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_completebaseinfo

{
  "indexes": {
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderacceptinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimeactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_vhsworkorderinfo

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimereminderlogs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

basic_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_afcreceiverecordinfo

{
  "message": "\u8868 tb_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcreceiverecordinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(RC)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL COMMENT '客户回款日期',
  `ReceivePrice` decimal(20,2) DEFAULT NULL COMMENT '客户回款金额',
  `ReceiveIssue` int(11) DEFAULT NULL COMMENT '客户回款期数',
  `ReceiveStatus` varchar(20) DEFAULT NULL COMMENT '状态描述',
  `ReceiveStatusRemark` varchar(50) DEFAULT NULL COMMENT '状态描述备注',
  `PersonAssess` tinyint(4) DEFAULT NULL COMMENT '人员考核(0-否,1-是)',
  `ProAssess` tinyint(4) DEFAULT NULL COMMENT '省份考核(0-否,1-是)',
  `AddRemark1` varchar(200) DEFAULT NULL COMMENT '补充描述1',
  `AddRemark2` varchar(200) DEFAULT NULL COMMENT '补充描述2',
  `PromptMerits` decimal(20,2) DEFAULT NULL COMMENT '协催绩效',
  `SettleTime` datetime DEFAULT NULL COMMENT '结算时间',
  `SettleRemark` int(11) DEFAULT NULL COMMENT '结算备注(0-正常结算,1-超期还款,2-结清/交车,3-项目对账)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdateById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '运营登记日期',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ReceiveTime` (`ReceiveDate`) USING BTREE,
  KEY `NON-ReceiveStatus` (`ReceiveStatus`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-UpdatedAt` (`UpdatedAt`) USING BTREE,
  KEY `NON-SettleTime` (`SettleTime`),
  KEY `NON-SettleRemark` (`SettleRemark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融运营回款信息'

serviceinfodetail

{
  "message": "\u8868 serviceinfodetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfodetail` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

vi_tireworkorderinfo

{
  "message": "\u8868 vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

vi_workorderinfo_mobile

{
  "message": "\u8868 vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

workflownodeactions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_districtyx

{
  "message": "\u8868 tmp_districtyx \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userruleinfo_serv

{
  "message": "\u8868 tb_userruleinfo_serv \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userruleinfo_serv` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `OrgCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserCenterId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '人员ID(tb_userinfo.UserCenterId)',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员登录名',
  `OrderType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `DistrictCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限内地区编码',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-DistrictCode` (`DistrictCode`),
  KEY `NON-LoginName` (`LoginName`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-OrgCode` (`OrgCode`),
  KEY `NON-UserCenterId` (`UserCenterId`)
) ENGINE=InnoDB AUTO_INCREMENT=2377 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_人员区域权限表'

vi_workorderusedcarcheck2

{
  "message": "\u8868 vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

workflowruntimerelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_persons20250304

{
  "message": "\u8868 tm_persons20250304 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250304` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tm_updatepropertycode20210923

{
  "message": "\u8868 tm_updatepropertycode20210923 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_updatepropertycode20210923`;

workflowhandlingstatus_bak

{
  "message": "\u8868 workflowhandlingstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowhandlingstatus_bak`;

tb_userdetail

{
  "indexes": {
    "NON-AffiliatedInstitution": {
      "message": "\u7d22\u5f15 NON-AffiliatedInstitution \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_riskworkorderinfo_other1

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

common_propertymapping

{
  "columns": {
    "MappingPropertyCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_workfixgoodsdetail

{
  "columns": {
    "IsLoss": {
      "message": "\u5217 IsLoss \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetail_test

{
  "message": "\u8868 vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

de_tb_merchant01

{
  "message": "\u8868 de_tb_merchant01 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant01` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息01'

tb_userclockininfo

{
  "message": "\u8868 tb_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-UserWorkStatus` (`UserWorkStatus`) USING BTREE,
  KEY `NON-IsAutomatic` (`IsAutomatic`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2168 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡设置信息表'

rp_vhsworkorderdetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userclockindeviceinfo

{
  "message": "\u8868 tb_userclockindeviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockindeviceinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(100) DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `VisitorRole` varchar(50) DEFAULT NULL COMMENT '角色',
  `InstitutionName` varchar(100) DEFAULT NULL COMMENT '部门',
  `ProCode` varchar(20) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(20) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '区域名称',
  `Address` varchar(500) DEFAULT NULL COMMENT '详细地址',
  `ClockInDate` date NOT NULL COMMENT '打卡日期',
  `ClockInTime` time NOT NULL COMMENT '打卡时间',
  `ClockInLng` varchar(20) DEFAULT NULL COMMENT '打卡经度',
  `ClockInLat` varchar(50) DEFAULT NULL COMMENT '打卡纬度',
  `ClockInAddress` varchar(200) DEFAULT NULL COMMENT '打卡地址',
  `InsertTime` datetime(6) DEFAULT NULL,
  `Deleted` smallint(6) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-ClockInDate` (`ClockInDate`) USING BTREE,
  KEY `NON-ClockInTime` (`ClockInTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-ProCode` (`ProCode`) USING BTREE,
  KEY `NON-CityCode` (`CityCode`) USING BTREE,
  KEY `NON-AreaCode` (`AreaCode`) USING BTREE,
  KEY `NON-ProName` (`ProName`) USING BTREE,
  KEY `NON-CityName` (`CityName`) USING BTREE,
  KEY `NON-AreaName` (`AreaName`) USING BTREE,
  KEY `NON-ClockInLng` (`ClockInLng`) USING BTREE,
  KEY `NON-ClockInLat` (`ClockInLat`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=213 ROW_FORMAT=DYNAMIC COMMENT='用户下班打卡信息表'

tm_main

{
  "message": "\u8868 tm_main \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_main`;

rp_afcworkorderdetail

{
  "columns": {
    "AccommodateSign": {
      "message": "\u5217 AccommodateSign \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimbursableDistance": {
      "type": {
        "source": "decimal(18,2)",
        "target": "varchar(500)"
      }
    },
    "AuditStatus": {
      "message": "\u5217 AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeRemark": {
      "message": "\u5217 FeeRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FindWho": {
      "message": "\u5217 FindWho \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OverdueGrade": {
      "message": "\u5217 OverdueGrade \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnCountReward": {
      "message": "\u5217 ReturnCountReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnPriceReward": {
      "message": "\u5217 ReturnPriceReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondLinkMan": {
      "message": "\u5217 SecondLinkMan \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondVisitStatus": {
      "message": "\u5217 SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "NON-WorkOrderId": {
      "message": "\u7ea6\u675f NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

check_workflowjsoninfo

{
  "message": "\u8868 check_workflowjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsoninfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `CheckType` smallint(6) DEFAULT NULL COMMENT '问题原因',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '验证日期',
  `CorrectStatus` smallint(6) DEFAULT NULL COMMENT '更正状态',
  `UnCorrectJson` json DEFAULT NULL COMMENT '历史错误Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-CheckDate` (`CheckDate`) USING BTREE,
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CheckType` (`CheckType`) USING BTREE,
  KEY `NON-CorrectStatus` (`CorrectStatus`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8612340 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=74 ROW_FORMAT=DYNAMIC COMMENT='工单工作流数据验证日志表'

tb_workorderrelation

{
  "columns": {
    "RelateNo": {
      "message": "\u5217 RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-RelateNo": {
      "message": "\u7d22\u5f15 NON-RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_vhsworkorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverLoginName": {
      "message": "\u5217 ReceiverLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserId": {
      "message": "\u5217 ReceiverUserId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserName": {
      "message": "\u5217 ReceiverUserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

home_auditcount

{
  "message": "\u8868 home_auditcount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_auditcount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '质检单量',
  `OnceAuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '首次质检即完成单量',
  `OnceAuditRate` int(11) DEFAULT NULL COMMENT '质检一次通过率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=13739 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_质检信息'

tb_prepaymentorderinfo

{
  "message": "\u8868 tb_prepaymentorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tb_prepaymentorderinfo`;

home_areageo

{
  "message": "\u8868 home_areageo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_areageo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `ALat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ALng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=3821 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_工单完成率地区经纬度'

tmp_tablename

{
  "message": "\u8868 tmp_tablename \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename` (
  `tablename` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vvi_workorderauditinfoforafc

{
  "message": "\u8868 vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

workflowcompleteactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetail

{
  "message": "\u8868 vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

tb_workflowrestartlog

{
  "message": "\u8868 tb_workflowrestartlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workflowrestartlog` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(15) DEFAULT NULL COMMENT '工单ID',
  `RestartType` int(11) DEFAULT NULL COMMENT '事件类型',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(20) DEFAULT NULL COMMENT '工单类型',
  `CreatedAt` datetime(3) DEFAULT NULL COMMENT '数据创建时间',
  `Num` int(11) DEFAULT '0' COMMENT '重试次数',
  `LastRestartTime` datetime(3) DEFAULT NULL COMMENT '上次重试时间',
  `OtherData` text COMMENT '附加数据',
  `Remark` text COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `WorkOrderId` (`WorkOrderId`),
  KEY `Num` (`Num`),
  KEY `CreatedAt` (`CreatedAt`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='作流外挂接口执行失败重试日志'

tb_afcnegotiationrecordinfo

{
  "columns": {
    "ConnectChannel": {
      "message": "\u5217 ConnectChannel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserName": {
      "message": "\u5217 UserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserTel": {
      "message": "\u5217 UserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "VisitorTel": {
      "message": "\u5217 VisitorTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxCode": {
      "message": "\u5217 WxCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxRemark": {
      "message": "\u5217 WxRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

config_usermessagereminder

{
  "message": "\u8868 config_usermessagereminder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `config_usermessagereminder` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `MessageType` smallint(6) DEFAULT NULL COMMENT '消息提醒类型(1语音 2横幅)',
  `RestingEnable` smallint(6) DEFAULT '1' COMMENT '休息中是否启用(0否1是)',
  `Enable` smallint(6) DEFAULT '1' COMMENT '是否启用(0否1是)',
  `CreatedById` char(36) DEFAULT NULL COMMENT '信息录入人员',
  `CreatedAt` datetime DEFAULT NULL COMMENT '信息录入时间',
  `UpdatedById` char(36) DEFAULT NULL COMMENT '信息最后修改人员',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '信息最后修改时间',
  `DeletedById` char(36) DEFAULT NULL COMMENT '信息删除人员',
  `DeletedAt` datetime DEFAULT NULL COMMENT '信息删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标识',
  PRIMARY KEY (`Id`),
  KEY `NON-UserCenterId` (`UserCenterId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-MessageType` (`MessageType`) USING BTREE,
  KEY `NON-RestingEnable` (`RestingEnable`) USING BTREE,
  KEY `NON-Enable` (`Enable`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='消息提醒配置表'

z_qianyi

{
  "message": "\u8868 z_qianyi \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `z_qianyi` (
  `table_name` varchar(200) NOT NULL,
  `table_comment` varchar(200) DEFAULT NULL,
  `rows` int(11) DEFAULT NULL,
  `remark` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

事务、沟通、会议任务工时明细

{
  "message": "\u8868 \u4e8b\u52a1\u3001\u6c9f\u901a\u3001\u4f1a\u8bae\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `事务、沟通、会议任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

de_tb_merchant

{
  "message": "\u8868 de_tb_merchant \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

vi_workingorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_importlog

{
  "indexes": {
    "NON-ImportCode": {
      "message": "\u7d22\u5f15 NON-ImportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderswitchdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_csgroup

{
  "message": "\u8868 tmp_csgroup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_csgroup` (
  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimeitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_vhsworkingorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workedorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workauditphotoinfo

{
  "message": "\u8868 tb_workauditphotoinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workauditphotoinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `AuditPhotoType` smallint(6) DEFAULT NULL COMMENT '质检照片类型:1.人车合影照片;2.三合一照片;3.安装远照(设备0059);4.安装近照(设备0059);5.环境照片;',
  `AuditPhotoRule` varchar(200) DEFAULT NULL COMMENT '质检照片类型识别规则',
  `AuditStatus` smallint(6) DEFAULT NULL COMMENT '质检状态:0.未通过;1.已通过;',
  `ResourceId` char(12) DEFAULT NULL COMMENT '资源表Id(basic_resourceitem.Id)',
  `AuditRemark` varchar(50) DEFAULT NULL COMMENT '质检备注',
  `IsAuditError` smallint(6) DEFAULT NULL COMMENT '是否质检系统识别有误:0.否;1.是;',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ResourceId` (`ResourceId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='业务域_自动质检图片信息'

home_timeduration

{
  "message": "\u8868 home_timeduration \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_timeduration` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DispatchDuration` int(11) NOT NULL DEFAULT '0' COMMENT '调度时长(小时)',
  `ServiceDuration` int(11) NOT NULL DEFAULT '0' COMMENT '总服务时长(小时)',
  `AuditDuration` int(11) NOT NULL DEFAULT '0' COMMENT '质检响应时长(小时)',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=2017 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_时效信息'

workflownodeactors_bak

{
  "message": "\u8868 workflownodeactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactors_bak`;

workflowcompleterelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

slow918

{
  "message": "\u8868 slow918 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow918` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count911` int(11) DEFAULT NULL,
  `count918` int(11) DEFAULT NULL,
  `countminus` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workflowinfo

{
  "columns": {
    "Remark": {
      "type": {
        "source": "varchar(500)",
        "target": "varchar(200)"
      }
    }
  }
}

vi_workorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_workorder20250314

{
  "message": "\u8868 tm_workorder20250314 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_workorder20250314` (
  `工单编号` varchar(255) DEFAULT NULL,
  `省` varchar(255) DEFAULT NULL,
  `市` varchar(255) DEFAULT NULL,
  `区` varchar(255) DEFAULT NULL,
  `详细地址` varchar(255) DEFAULT NULL,
  `服务科目` varchar(255) DEFAULT NULL,
  `施工人(账号)` varchar(255) DEFAULT NULL,
  `施工人(姓名)` varchar(255) DEFAULT NULL,
  `电话` varchar(255) DEFAULT NULL,
  `工单提交时间` varchar(255) DEFAULT NULL,
  `施工完成时间` varchar(255) DEFAULT NULL,
  `工单状态` varchar(255) DEFAULT NULL,
  `服务商` varchar(255) DEFAULT NULL,
  `报表月份` varchar(255) DEFAULT NULL,
  `公司` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_orderdetaildaily

{
  "message": "\u8868 home_orderdetaildaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_orderdetaildaily` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DetailType` smallint(6) DEFAULT NULL COMMENT '明细类型(1下单时间2首次接单时间3下单成功时间4首次提交结果时间\n5最后一次提交结果时间6首次质检时间7工单质检时间8质检驳回时间9首次质检即通过10工单完成时间11工单关闭时间)',
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单Id',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ServiceId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Id',
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Code',
  `ServiceName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员姓名',
  `DetailTime` datetime DEFAULT NULL COMMENT '明细事件时间',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '查询日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_ServiceCode` (`ServiceCode`),
  KEY `UNI-DetailWorkId` (`DetailType`,`WorkOrderId`),
  KEY `NON_AreaCode` (`AreaCode`),
  KEY `NON_ProCode` (`ProCode`),
  KEY `NON_ServiceId` (`ServiceId`),
  KEY `NON_DetailType` (`DetailType`),
  KEY `NON_ProviderCode` (`ProviderCode`),
  KEY `NON_WorkOrderId` (`WorkOrderId`),
  KEY `NON_CustomerName` (`CustomerName`),
  KEY `NON_CityCode` (`CityCode`),
  KEY `NON_OrderType` (`OrderType`),
  KEY `NON_CheckDate` (`CheckDate`),
  KEY `NON_DetailTime` (`DetailTime`),
  KEY `NON_CustomerId` (`CustomerId`)
) ENGINE=InnoDB AUTO_INCREMENT=107630197 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_每日工单明细'

tmp_chpresourcedetail

{
  "message": "\u8868 tmp_chpresourcedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpresourcedetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `SourceType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件类型',
  `FileName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
  `Url` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '链接',
  `CreatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩导出附件临时表'

vi_riskworkorderinfo_other

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

rp_workordercount

{
  "indexes": {
    "NON-ArtificialServicePriceName": {
      "message": "\u7d22\u5f15 NON-ArtificialServicePriceName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowhandlingstatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workgoodsdetail

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

rp_vhsworkorderinfodetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

flink_sinka

{
  "message": "\u8868 flink_sinka \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_sinka`;

workflownodecommentactors_bak

{
  "message": "\u8868 workflownodecommentactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodecommentactors_bak`;

tb_exportlog

{
  "columns": {
    "ExpStatus": {
      "message": "\u5217 ExpStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ExportCode": {
      "message": "\u7d22\u5f15 NON-ExportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_zhusuwei

{
  "message": "\u8868 tmp_zhusuwei \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_zhusuwei` (
  `省份` varchar(255) DEFAULT NULL,
  `父级` varchar(255) DEFAULT NULL,
  `城市` varchar(255) DEFAULT NULL,
  `汇总的` varchar(255) DEFAULT NULL,
  `城市等级` varchar(255) DEFAULT NULL,
  `职等信息` varchar(255) DEFAULT NULL,
  `金额` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_workflowstatus_bak

{
  "message": "\u8868 basic_workflowstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak`;

vi_userworkphoneinfo

{
  "message": "\u8868 vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

tm_persons

{
  "message": "\u8868 tm_persons \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_chpworkorderinfo

{
  "columns": {
    "Distance": {
      "type": {
        "source": "decimal(18,1)",
        "target": "varchar(255)"
      }
    },
    "LastAuditRejectRemark": {
      "message": "\u5217 LastAuditRejectRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastUpdateTimeStamp": {
      "message": "\u5217 LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-LastUpdateTimeStamp": {
      "message": "\u7d22\u5f15 NON-LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderinvoicelog

{
  "message": "\u8868 tb_workorderinvoicelog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinvoicelog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID',
  `ApplyPhone` varchar(50) DEFAULT NULL COMMENT '申请电话号码',
  `Result` int(11) DEFAULT NULL COMMENT '申请结果(0-申请中,1-申请成功,2-申请失败)',
  `Remark` varchar(200) DEFAULT NULL COMMENT '申请结果备注',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '申请操作人ID',
  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-Result` (`Result`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1526 DEFAULT CHARSET=utf8 COMMENT='工单发票申请日志表'

阶段目标生产达成

{
  "message": "\u8868 \u9636\u6bb5\u76ee\u6807\u751f\u4ea7\u8fbe\u6210 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `阶段目标生产达成` (
  `研发生产目标模板-产品迭代优化/集成项目/客制化项目` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `阶段基线` varchar(255) DEFAULT NULL,
  `工时
(人天)` varchar(255) DEFAULT NULL,
  `交期
(YY-MM-DD)` varchar(255) DEFAULT NULL,
  `范围
(PRD版本/架构优化)` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_workimp

{
  "message": "\u8868 tmp_workimp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp` (
  `ordertype` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `classname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `appcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `custname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `storename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `settlename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `brandname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `proname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `cityname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `areaname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusername` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusertel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `installperson` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL COMMENT '工单提交时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

basic_workflowstatus_bak_new

{
  "message": "\u8868 basic_workflowstatus_bak_new \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak_new`;

tm_appcode

{
  "message": "\u8868 tm_appcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_appcode` (
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`appcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=36 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

home_ordercreatetrend

{
  "message": "\u8868 home_ordercreatetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercreatetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckYear` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表年份',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_CheckYear` (`CheckYear`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=1832 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_下单量趋势'

tm_workresourceinfo_20210705

{
  "message": "\u8868 tm_workresourceinfo_20210705 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705`;

tb_workfeeinfo

{
  "columns": {
    "IsAddition": {
      "message": "\u5217 IsAddition \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "PrePaymentOrderNo": {
      "message": "\u7d22\u5f15 PrePaymentOrderNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workfeeinfo` DROP COLUMN `IsAddition`;

home_viewdata

{
  "message": "\u8868 home_viewdata \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_viewdata` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DataType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `JsonValue` json DEFAULT NULL COMMENT 'data数据',
  `InsertTime` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `home_viewdata_ProCode_index` (`ProCode`),
  KEY `home_viewdata_DateType_index` (`DateType`),
  KEY `home_viewdata_DataType_index` (`DataType`),
  KEY `home_viewdata_ProviderCode_index` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=1036829 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='大屏工单_首页视图'

workflownodestepconditions_bak

{
  "message": "\u8868 workflownodestepconditions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodestepconditions_bak`;

tb_afcsecondvisitinfo

{
  "message": "\u8868 tb_afcsecondvisitinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcsecondvisitinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(SV)',
  `WorkOrderId` varchar(20) DEFAULT NULL COMMENT '工单ID',
  `InitiatorCode` varchar(50) DEFAULT NULL COMMENT '发起人Code',
  `InitiatorName` varchar(100) DEFAULT NULL COMMENT '发起人Name',
  `InitiateTime` datetime DEFAULT NULL COMMENT '发起时间',
  `InitiateRemark` varchar(2000) DEFAULT NULL COMMENT '发起原因',
  `SubmitType` smallint(6) DEFAULT NULL COMMENT '二访保存状态(0保存,1提交)',
  `SubmitterCode` varchar(50) DEFAULT NULL COMMENT '提交人Code',
  `SubmitterName` varchar(100) DEFAULT NULL COMMENT '提交人Name',
  `SubmitStatus` smallint(6) DEFAULT '0' COMMENT '确认二访(0-无操作,1-确认,2-拒绝)',
  `SubmitTime` datetime DEFAULT NULL COMMENT '提交时间',
  `SubmitRemark` varchar(2000) DEFAULT NULL COMMENT '提交备注',
  `RejectReason` varchar(2000) DEFAULT NULL COMMENT '拒绝原因',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融二访信息'

slow911

{
  "message": "\u8868 slow911 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow911` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_riskdatatime

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

basic_orgroleinfo

{
  "columns": {
    "ApiPermission": {
      "message": "\u5217 ApiPermission \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_feeauditlog

{
  "message": "\u8868 tb_feeauditlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_feeauditlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `FeeApplicationId` varchar(12) DEFAULT NULL COMMENT '申请单ID(tb_feeapplicationinfo.id)',
  `PersonCode` char(12) DEFAULT NULL COMMENT '操作人Code',
  `PersonName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `OperationType` varchar(20) DEFAULT NULL COMMENT '操作类型',
  `Result` varchar(20) DEFAULT NULL COMMENT '审核结果',
  `Remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `InsertTime` datetime DEFAULT NULL,
  `Deleted` tinyint(4) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-FeeApplicationId` (`FeeApplicationId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT='通用域_费用申请审批日志'

slow1114

{
  "message": "\u8868 slow1114 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1114` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

changhe

{
  "message": "\u8868 changhe \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `changhe` (
  `结算单位` varchar(255) DEFAULT NULL,
  `结算属性` varchar(255) DEFAULT NULL,
  `商品名称` varchar(255) DEFAULT NULL,
  `类型` varchar(255) DEFAULT NULL,
  `商品属性` varchar(255) DEFAULT NULL,
  `下单方式` varchar(255) DEFAULT NULL,
  `是否关联保险` varchar(255) DEFAULT NULL,
  `商品价格` varchar(255) DEFAULT NULL,
  `建立时间` varchar(255) DEFAULT NULL,
  `下架时间` varchar(255) DEFAULT NULL,
  `产品名称` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_delorderid

{
  "columns": {
    "remark": {
      "message": "\u5217 remark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_dists

{
  "message": "\u8868 tmp_dists \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_dists` (
  `lv3code` varchar(255) DEFAULT NULL,
  `lv3name` varchar(255) DEFAULT NULL,
  `zr3code` varchar(255) DEFAULT NULL,
  `zr3name` varchar(255) DEFAULT NULL,
  `zr2code` varchar(255) DEFAULT NULL,
  `zr2name` varchar(255) DEFAULT NULL,
  `zr1code` varchar(255) DEFAULT NULL,
  `lv1name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workcarinfo

{
  "indexes": {
    "NON-PlateColor": {
      "message": "\u7d22\u5f15 NON-PlateColor \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workcarinfo` DROP INDEX `NON-PlateColor`;

vi_qualityorderdetail

{
  "columns": {
    "AuditContent": {
      "message": "\u5217 AuditContent \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_afcworkorderdetailforexport

{
  "message": "\u8868 vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

workflowruntimedelegatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_persons20250121

{
  "message": "\u8868 tm_persons20250121 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250121` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

test_encryption

{
  "message": "\u8868 test_encryption \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_encryption` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) DEFAULT NULL,
  `Data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8

tm_customerinfoformove20210927

{
  "message": "\u8868 tm_customerinfoformove20210927 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_customerinfoformove20210927`;

tb_workorderdetailmodel

{
  "message": "\u8868 tb_workorderdetailmodel \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderdetailmodel` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Report` int(11) NOT NULL COMMENT '报表(1-金融工单明细表)',
  `ModelName` varchar(50) DEFAULT NULL COMMENT '报表模板名称',
  `Column` text COMMENT '自定义字段',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '模板创建人账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '模板创建人姓名',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `Deleted` tinyint(4) DEFAULT NULL COMMENT '是否删除',
  PRIMARY KEY (`Id`),
  KEY `NON-Report` (`Report`) USING BTREE,
  KEY `NON-ModelName` (`ModelName`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COMMENT='报表导出模板表'

workflowprocessstates_bak

{
  "message": "\u8868 workflowprocessstates_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowprocessstates_bak`;

vi_vhsworkedorderinfo

{
  "columns": {
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_afcworkorderinfo

{
  "columns": {
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "CustomerBriefName": {
      "message": "\u5217 CustomerBriefName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodecommentactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_districtyx1

{
  "message": "\u8868 tmp_districtyx1 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx1` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `省编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_usercount

{
  "message": "\u8868 home_usercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AreaCnt` int(11) NOT NULL DEFAULT '0' COMMENT '区域覆盖人数',
  `CoverCnt` int(11) NOT NULL DEFAULT '0' COMMENT '实际施工人数',
  `ActiveRate` int(11) DEFAULT NULL COMMENT '活跃率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=1280 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_人员信息'

rp_afcreceiverecordinfo

{
  "message": "\u8868 rp_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_afcreceiverecordinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `RelateId` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'RelateId',
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BatchNo` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ContractNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkMan` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OverdueDays` int(11) DEFAULT NULL,
  `OverdueGrade` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CaseDate` date DEFAULT NULL,
  `RetreatDate` date DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL,
  `ReceivePrice` decimal(20,2) DEFAULT NULL,
  `ReceiveIssue` int(11) DEFAULT NULL,
  `ReceiveStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveStatusRemark` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PersonAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Grade` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RegistrationDate` datetime DEFAULT NULL,
  `AddRemark1` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AddRemark2` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveAmounts` decimal(18,2) DEFAULT NULL,
  `ReturnedType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReturnedType2` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalStatus` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EntryAmount` decimal(18,2) DEFAULT NULL,
  `IfReport` tinyint(1) DEFAULT NULL,
  `PresentName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalTime` datetime DEFAULT NULL,
  `AuditTime` datetime DEFAULT NULL,
  `SubjectNameSummary` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `BatchNo` (`BatchNo`) USING BTREE,
  KEY `RelateId` (`RelateId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8222 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='金融回款登记明细表-测试'

testuser

{
  "columns": {
    "Id": {
      "extra": {
        "source": "auto_increment",
        "target": ""
      },
      "nullable": {
        "source": false,
        "target": true
      }
    }
  },
  "indexes": {
    "PRIMARY": {
      "message": "\u7d22\u5f15 PRIMARY \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "idx_testuser_lookup": {
      "message": "\u7d22\u5f15 idx_testuser_lookup \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `testuser` DROP INDEX `idx_testuser_lookup`;

home_usermapdetail

{
  "message": "\u8868 home_usermapdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdetail` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-OrderTypeName` (`OrderTypeName`)
) ENGINE=InnoDB AUTO_INCREMENT=795635 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图明细'

tb_userworkphoneinfo

{
  "message": "\u8868 tb_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `WXPhoneInfoId` varchar(12) DEFAULT NULL COMMENT '微信语音绑定微信聊天记录ID(tb_userworkphoneinfo.Id)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`),
  KEY `WXPhoneInfoId` (`WXPhoneInfoId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

workflowruntimecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflownodeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_chpfixorder

{
  "message": "\u8868 tmp_chpfixorder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpfixorder` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderRemark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserTel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderCompleteTime` datetime DEFAULT NULL,
  `StoreCode` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `RecordPersonName` (`RecordPersonName`) USING BTREE,
  KEY `NON-OrderTypeName` (`OrderTypeName`) USING BTREE,
  KEY `ProName` (`ProName`) USING BTREE,
  KEY `StoreName` (`StoreName`) USING BTREE,
  KEY `SubjectName` (`SubjectName`) USING BTREE,
  KEY `CityName` (`CityName`) USING BTREE,
  KEY `CustomerId` (`CustomerId`) USING BTREE,
  KEY `AppCode` (`AppCode`) USING BTREE,
  KEY `AreaName` (`AreaName`) USING BTREE,
  KEY `SubjectCode` (`SubjectCode`) USING BTREE,
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `CustomerName` (`CustomerName`) USING BTREE,
  KEY `SettleName` (`SettleName`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=864 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='20231010\r\n导入充电桩私桩巡检虚拟数据864单'

vi_workorderteardetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_aes_encrypt

{
  "message": "\u8868 tmp_aes_encrypt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_aes_encrypt` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `NUM` varbinary(100) DEFAULT NULL,
  `num1` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

vi_workorderrecheckdetailforexport

{
  "message": "\u8868 vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

tm_resource

{
  "message": "\u8868 tm_resource \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_resource` (
  `resourceid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `workorderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `resourcename` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `URL` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`resourceid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

workflownodestepconditions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_wxuserinfo

{
  "message": "\u8868 tb_wxuserinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_wxuserinfo` (
  `WxId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键(WxId,安米无微信ID,数据同微信号)',
  `DataSource` smallint(6) NOT NULL DEFAULT '0' COMMENT '来源(1-云客,2-安米)',
  `WxCode` varchar(50) DEFAULT NULL COMMENT '微信号',
  `WxName` varchar(50) DEFAULT NULL COMMENT '微信昵称',
  `WxHead` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '微信头像URL',
  `WxNameRemark` varchar(100) DEFAULT NULL COMMENT '微信备注名',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserType` smallint(6) DEFAULT NULL COMMENT '类型(1-员工,2-客户(员工好友),3-群,4-群成员)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`WxId`,`DataSource`),
  KEY `UserType` (`UserType`),
  KEY `LoginName` (`LoginName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员微信信息表'

tm_flowstatus

{
  "message": "\u8868 tm_flowstatus \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_flowstatus` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ItemCode` varchar(50) DEFAULT NULL,
  `ItemName` varchar(50) DEFAULT NULL,
  `NodeCode` varchar(50) DEFAULT NULL,
  `NodeName` varchar(50) DEFAULT NULL,
  `StatusName` varchar(50) DEFAULT NULL,
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`Id`),
  KEY `NON-ItemName` (`ItemName`),
  KEY `NON-NodeName` (`NodeName`),
  KEY `NON-StatusName` (`StatusName`)
) ENGINE=InnoDB AUTO_INCREMENT=577 DEFAULT CHARSET=utf8 COMMENT='各工作流中各步骤与状态取值对应关系表'

workflowcompleteitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderfixdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tmp_tablename2

{
  "message": "\u8868 tmp_tablename2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tablename` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8

de_xichashiti

{
  "columns": {
    "testJson": {
      "message": "\u5217 testJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workflowjsoninfo

{
  "columns": {
    "SourceMode": {
      "default": {
        "source": "1",
        "target": null
      }
    },
    "v_LastAddRecordTime": {
      "message": "\u5217 v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_LastAddRecordTime": {
      "message": "\u7d22\u5f15 NON-v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

aggregatedcounter

{
  "message": "\u8868 aggregatedcounter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `aggregatedcounter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_CounterAggregated_Key` (`Key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_canaltest3

{
  "message": "\u8868 tmp_canaltest3 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest3`;

vi_workorderinstalldetail

{
  "columns": {
    "DeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "SimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

workflowrelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workaddressinfo

{
  "indexes": {
    "NON-Address": {
      "message": "\u7d22\u5f15 NON-Address \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

flink_tablea

{
  "message": "\u8868 flink_tablea \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tablea`;

tm_userarea

{
  "message": "\u8868 tm_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProCode` varchar(50) DEFAULT NULL COMMENT '省份Code',
  `AreaCnt` int(11) DEFAULT NULL COMMENT '区域覆盖人数',
  PRIMARY KEY (`Id`),
  KEY `1` (`ProviderCode`),
  KEY `2` (`ProCode`)
) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8

job

{
  "message": "\u8868 job \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `job` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `StateId` int(11) DEFAULT NULL,
  `StateName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InvocationData` longtext NOT NULL,
  `Arguments` longtext NOT NULL,
  `CreatedAt` datetime(6) NOT NULL,
  `ExpireAt` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Job_StateName` (`StateName`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

de_xichashiti20220523150128431

{
  "message": "\u8868 de_xichashiti20220523150128431 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_xichashiti20220523150128431` (
  `Id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `x1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'dataText',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='喜茶实体'

tm_usermapsummary

{
  "message": "\u8868 tm_usermapsummary \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_usermapsummary` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `1` (`AreaCode`),
  KEY `2` (`AreaType`),
  KEY `3` (`OrderTypeName`),
  KEY `4` (`ProviderCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='智能工单大屏_服务人员地图明细'

workflownoderelatedactors_bak

{
  "message": "\u8868 workflownoderelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownoderelatedactors_bak`;

workflowitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_userinfoa20210727

{
  "message": "\u8868 tm_userinfoa20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfoa20210727`;

tb_userfeedetail

{
  "message": "\u8868 tb_userfeedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userfeedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(UF)',
  `UserInfoId` varchar(12) DEFAULT NULL COMMENT 'tb_userinfo.id',
  `LoginName` varchar(20) DEFAULT NULL COMMENT '用户账号',
  `FeeGroupCode` varchar(50) DEFAULT NULL COMMENT '费用标准组code',
  `FeeItemId` varchar(12) DEFAULT NULL COMMENT '费用项目ID(tb_feeiteminfo.id)',
  `ServiceSubjectCode` varchar(50) DEFAULT NULL COMMENT '服务科目code(tb_servicesubject.code)',
  `RuleJson` json DEFAULT NULL COMMENT '条件JSON',
  `Price` decimal(10,2) DEFAULT '0.00' COMMENT '标准费用/分佣比例',
  `EffectDate` date DEFAULT NULL COMMENT '生效日期',
  `EffectStatus` smallint(6) DEFAULT NULL COMMENT '生效状态(0-待生效,1-已生效,2-已过期)',
  `IfShow` smallint(6) DEFAULT NULL COMMENT '是否展示(0-不展示,1-展示)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` varchar(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  `v_Power` decimal(18,1) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')))) VIRTUAL COMMENT '(CHP)功率',
  `v_CustomerName` varchar(100) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')))) VIRTUAL COMMENT '(CHP)客户名称',
  `v_CustomerId` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')))) VIRTUAL COMMENT '(CHP)客户姓名',
  `v_Line` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')))) VIRTUAL COMMENT '(CHP)线缆(米)',
  `v_BrandCode` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')))) VIRTUAL COMMENT '(CHP)品牌标准code',
  PRIMARY KEY (`Id`),
  KEY `NON-UserInfoId` (`UserInfoId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-FeeItemId` (`FeeItemId`) USING BTREE,
  KEY `NON-ServiceSubjectCode` (`ServiceSubjectCode`) USING BTREE,
  KEY `NON-EffectDate` (`EffectDate`) USING BTREE,
  KEY `NON-FeeGroupCode` (`FeeGroupCode`) USING BTREE,
  KEY `NON-IfShow` (`IfShow`) USING BTREE,
  KEY `NON-v_CustomerName` (`v_CustomerName`),
  KEY `NON-v_CustomerId` (`v_CustomerId`),
  KEY `NON-v_Line` (`v_Line`),
  KEY `NON-v_BrandCode` (`v_BrandCode`),
  KEY `NON-v_Power` (`v_Power`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩团队管理人员费用信息表'

tb_afcpaymentreport

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_afcworkfinanceinfo

{
  "columns": {
    "EntrustAmount": {
      "message": "\u5217 EntrustAmount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PaymentPeriod": {
      "type": {
        "source": "varchar(100)",
        "target": "int(11)"
      }
    },
    "Performance": {
      "message": "\u5217 Performance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodeactions_bak

{
  "message": "\u8868 workflownodeactions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactions_bak`;

tb_workorderinfo_test

{
  "message": "\u8868 tb_workorderinfo_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinfo_test` (
  `Id` varchar(36) NOT NULL COMMENT '主键(WI)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '申请编码',
  `SourceType` smallint(6) DEFAULT NULL COMMENT '工单来源(0工单下单1智车品2客户接口3LCRM下单4OCRM下单5平安私有云6金融SAAS推送7车务推送)',
  `OrderType` varchar(50) DEFAULT NULL COMMENT '工单类型(sys_ordertypeinfo.Code)',
  `CreateType` smallint(6) DEFAULT NULL COMMENT '工单建单方式(来源二级分类)(1批量导入)',
  `ServiceProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态(basic_workflowstatus.WorkStatus)',
  `CustomerId` char(12) DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreId` char(12) DEFAULT NULL COMMENT '门店Id',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustStoreCode` varchar(50) DEFAULT NULL COMMENT '门店Code',
  `PreCustStoreId` char(12) DEFAULT NULL COMMENT '客户接口下单门店Id',
  `PreCustStoreName` varchar(100) DEFAULT NULL COMMENT '客户接口下单门店名称',
  `CustSettleId` char(12) DEFAULT NULL COMMENT '结算单位Id',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `IsCustomer` tinyint(1) NOT NULL COMMENT '是否为客户(0否1是)',
  `CustCoopType` smallint(6) DEFAULT NULL COMMENT '客户是否有合作商品(1中瑞2非中瑞3中瑞+非中瑞)',
  `ProCode` varchar(10) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(10) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '地区Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '地区名称',
  `InstallAddress` varchar(200) DEFAULT NULL COMMENT '加装地址',
  `InstallTime` datetime DEFAULT NULL COMMENT '加装时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `SecondLinkTel` varchar(20) DEFAULT NULL COMMENT '第二联系电话',
  `SecondLinkMan` varchar(50) DEFAULT NULL COMMENT '第二联系人',
  `WarehouseId` char(12) DEFAULT NULL COMMENT '发货一级仓Id',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '发货一级仓名称',
  `Remark` varchar(500) DEFAULT NULL COMMENT '客户备注',
  `IsUrgent` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检修工单是否紧急(0否1是)',
  `CustUniqueSign` varchar(50) DEFAULT NULL COMMENT '客户唯一标识',
  `CreatePersonCode` varchar(50) DEFAULT NULL COMMENT '建单人Code',
  `CreatePersonName` varchar(50) DEFAULT NULL COMMENT '建单人姓名',
  `EffectiveTime` datetime DEFAULT NULL COMMENT '工单生效时间',
  `EffectiveSuccessfulTime` datetime DEFAULT NULL COMMENT '下单成功生效时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `LastUpdateTimeStamp` bigint(20) DEFAULT (unix_timestamp(now(3))) COMMENT '最近更新时间',
  `LastUpdateTimeStamp1` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  PRIMARY KEY (`Id`),
  KEY `LastUpdateTimeStamp1` (`LastUpdateTimeStamp1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单信息表'

tb_workgoodsinfo

{
  "columns": {
    "ExtraJson": {
      "message": "\u5217 ExtraJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallFailReason": {
      "message": "\u5217 InstallFailReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallResult": {
      "message": "\u5217 InstallResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_ChargerType": {
      "message": "\u5217 v_ChargerType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_Power": {
      "message": "\u5217 v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_Power": {
      "message": "\u7d22\u5f15 NON-v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarUserTel": {
      "message": "\u7d22\u5f15 NON-v_chpCarUserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

move_workorder2023

{
  "columns": {
    "IsConsume": {
      "message": "\u5217 IsConsume \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "1": {
      "message": "\u7d22\u5f15 1 \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-BatchNo": {
      "message": "\u7d22\u5f15 NON-BatchNo \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `move_workorder2023` DROP COLUMN `IsConsume`;
ALTER TABLE `move_workorder2023` DROP INDEX `NON-BatchNo`;

tmp_districtyx3

{
  "message": "\u8868 tmp_districtyx3 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx3` (
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_ordertotalcnt

{
  "message": "\u8868 home_ordertotalcnt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordertotalcnt` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CntType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数量类型(1下单量2完成量3关闭量4质检量5服务客数量6服务施工人数)',
  `CntNum` int(11) NOT NULL DEFAULT '0' COMMENT '总量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CntType` (`CntType`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_业务累计服务信息'

workflowcompletecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

check_workflowjsonexclude

{
  "message": "\u8868 check_workflowjsonexclude \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsonexclude` (
  `WorkOrderId` char(12) NOT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`WorkOrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=49 ROW_FORMAT=DYNAMIC COMMENT='工作流冗余数据排除单据'

workflowrelatedactors_bak

{
  "message": "\u8868 workflowrelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowrelatedactors_bak`;

vi_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_remarkinfo

{
  "indexes": {
    "NON-RemarkTime": {
      "message": "\u7d22\u5f15 NON-RemarkTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_chprpappcode

{
  "message": "\u8868 tmp_chprpappcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprpappcode` (
  `AppCode` varchar(100) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`AppCode`),
  KEY `AppCode` (`AppCode`),
  KEY `WorkStatus` (`WorkStatus`),
  KEY `BatchNo` (`BatchNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩明细表导出APPCODE及批次(即用即删)_长期表'

tb_userworkphonedetail

{
  "message": "\u8868 tb_userworkphonedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphonedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WH)',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机主表ID(tb_userworkphoneinfo.Id)',
  `ConnectTime` datetime DEFAULT NULL COMMENT '沟通时间(通话/微信语音-[通话时间]、短信-[发送/接收时间]、微信-[最近沟通时间])',
  `ConnectInfo` int(11) DEFAULT NULL COMMENT '沟通情况(通话/微信语音-[通话时长(秒)]、微信-[聊天记录字符数])',
  `ConnectType` smallint(6) DEFAULT '0' COMMENT '沟通方式(0-无数据,1-呼入,2-呼出,3-接收,4-发送)',
  `ConnectStatus` smallint(6) DEFAULT '0' COMMENT '接通状态(0-无数据,1-接通,2-未接通)',
  `RecordDay` date DEFAULT NULL COMMENT '微信记录日期',
  `RecordTime` int(11) DEFAULT NULL COMMENT '微信记录时间(1[0:00:00~5:59:59];2[6:00:00~11:59:59];3[12:00:00~17:59:59];4[18:00:00~23:59:59])',
  `ChatHistory` json DEFAULT NULL COMMENT '聊天记录Json',
  `DataInfo` text COMMENT '数据信息(短信内容)',
  `Url` varchar(500) DEFAULT NULL COMMENT '附件链接',
  `ExternalId` varchar(100) DEFAULT NULL COMMENT '外部id',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/数据同步时间',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `DeletedAt` datetime DEFAULT NULL COMMENT '删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0:否,1:是)',
  PRIMARY KEY (`Id`),
  KEY `CreatedAt` (`CreatedAt`),
  KEY `RecordTime` (`RecordTime`),
  KEY `RecordDay` (`RecordDay`),
  KEY `ConnectTime` (`ConnectTime`),
  KEY `ConnectStatus` (`ConnectStatus`),
  KEY `ExternalId` (`ExternalId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机沟通信息冗余表'

tmp_districtyx2

{
  "message": "\u8868 tmp_districtyx2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx2` (
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `市编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userworkphoneinfo_backup

{
  "message": "\u8868 tb_userworkphoneinfo_backup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo_backup` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

tmp_canaltest2

{
  "message": "\u8868 tmp_canaltest2 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest2`;

workflownodes

{
  "columns": {
    "DataDictionaryId": {
      "type": {
        "source": "varchar(36)",
        "target": "char(36)"
      }
    },
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_canaltest1

{
  "message": "\u8868 tmp_canaltest1 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest1`;

tm_meigui

{
  "message": "\u8868 tm_meigui \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_meigui`;

tb_riskhistoryorder

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

tb_workserviceinfo

{
  "columns": {
    "InstitutionCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(20)"
      }
    },
    "WorkerCode": {
      "message": "\u5217 WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerId": {
      "message": "\u5217 WorkerId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerName": {
      "message": "\u5217 WorkerName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-InstitutionCode": {
      "message": "\u7d22\u5f15 NON-InstitutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkerCode": {
      "message": "\u7d22\u5f15 NON-WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_persons20250212

{
  "message": "\u8868 tm_persons20250212 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250212` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

工作簿2

{
  "message": "\u8868 \u5de5\u4f5c\u7c3f2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `工作簿2` (
  `产品线` text,
  `一级组织` text,
  `二级组织` text,
  `三级组织` text,
  `项目名称` text,
  `版本号` text,
  `优先级别` text,
  `严重级别` text,
  `发生时间` text,
  `是否为客户投诉` text,
  `问题类型` text,
  `问题大类` text,
  `问题小类` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp

{
  "message": "\u8868 tmp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp` (
  `A` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userclockin_log

{
  "message": "\u8868 tb_userclockin_log \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockin_log` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `StartTime` datetime DEFAULT NULL COMMENT '上班时间',
  `EndTime` datetime DEFAULT NULL COMMENT '下班时间',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-StartTime` (`StartTime`) USING BTREE,
  KEY `NON-EndTime` (`EndTime`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=418115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡日志表(31天)'

tb_workbussinessjsoninfo

{
  "columns": {
    "LastUpdateTimeStamp": {
      "default": {
        "source": "CURRENT_TIMESTAMP",
        "target": "CURRENT_TIMESTAMP(3)"
      },
      "extra": {
        "source": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP",
        "target": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP(3)"
      },
      "type": {
        "source": "timestamp",
        "target": "timestamp(3)"
      }
    },
    "v_CustomerAuditStatus": {
      "message": "\u5217 v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_chpCarModel": {
      "message": "\u5217 v_chpCarModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_need_reinstall": {
      "message": "\u5217 v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireDeviceModel": {
      "message": "\u5217 v_tireDeviceModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInflationPosition": {
      "message": "\u5217 v_tireInflationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInspectedVehicleCount": {
      "message": "\u5217 v_tireInspectedVehicleCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInstallationMethod": {
      "message": "\u5217 v_tireInstallationMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIsSupplementaryOrder": {
      "message": "\u5217 v_tireIsSupplementaryOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIssueSummary": {
      "message": "\u5217 v_tireIssueSummary \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNeedOuterTireRemoval": {
      "message": "\u5217 v_tireNeedOuterTireRemoval \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNumber": {
      "message": "\u5217 v_tireNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePlateNumber": {
      "message": "\u5217 v_tirePlateNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePosition": {
      "message": "\u5217 v_tirePosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeReason": {
      "message": "\u5217 v_tirePositionChangeReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeSuggestion": {
      "message": "\u5217 v_tirePositionChangeSuggestion \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePressure": {
      "message": "\u5217 v_tirePressure \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalCount": {
      "message": "\u5217 v_tireRemovalCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalInstallationPosition": {
      "message": "\u5217 v_tireRemovalInstallationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalReason": {
      "message": "\u5217 v_tireRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeId": {
      "message": "\u5217 v_tireRepairTypeId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeName": {
      "message": "\u5217 v_tireRepairTypeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementReason": {
      "message": "\u5217 v_tireReplacementReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementRemovalReason": {
      "message": "\u5217 v_tireReplacementRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "UNI-WORKORDERID": {
      "message": "\u7ea6\u675f UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "NON-DynIsHelpers": {
      "message": "\u7d22\u5f15 NON-DynIsHelpers \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-DynVinNumber": {
      "message": "\u7d22\u5f15 NON-DynVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-chpOrderCompleteTime": {
      "message": "\u7d22\u5f15 NON-chpOrderCompleteTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CompleteAging": {
      "message": "\u7d22\u5f15 NON-v_CompleteAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CustomerAuditStatus": {
      "message": "\u7d22\u5f15 NON-v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OrderRelationId": {
      "message": "\u7d22\u5f15 NON-v_OrderRelationId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OutCardDate": {
      "message": "\u7d22\u5f15 NON-v_OutCardDate \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 NON-v_PostFillWorkOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotAging": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotResult": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitStatus": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitTime": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpActualSolutionCode": {
      "message": "\u7d22\u5f15 NON-v_chpActualSolutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarVinNumber": {
      "message": "\u7d22\u5f15 NON-v_chpCarVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpElectricityMetersType": {
      "message": "\u7d22\u5f15 NON-v_chpElectricityMetersType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpFactoryBrand": {
      "message": "\u7d22\u5f15 NON-v_chpFactoryBrand \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpNextFollowTime": {
      "message": "\u7d22\u5f15 NON-v_chpNextFollowTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpSurveyInstallType": {
      "message": "\u7d22\u5f15 NON-v_chpSurveyInstallType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_need_reinstall": {
      "message": "\u7d22\u5f15 NON-v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UNI-WORKORDERID": {
      "message": "\u7d22\u5f15 UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_OrderColor": {
      "message": "\u7d22\u5f15 v_OrderColor \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 v_PostFillWorkOrder \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_afcAuditPassTime": {
      "message": "\u7d22\u5f15 v_afcAuditPassTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `v_PostFillWorkOrder`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `UNI-WORKORDERID`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP CONSTRAINT `UNI-WORKORDERID`;

vi_workfakeoffline

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

workflowruntimestatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

有效任务工时明细

{
  "message": "\u8868 \u6709\u6548\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `有效任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL,
  `f13` varchar(255) DEFAULT NULL,
  `f14` varchar(255) DEFAULT NULL,
  `f15` varchar(255) DEFAULT NULL,
  `f16` varchar(255) DEFAULT NULL,
  `f17` varchar(255) DEFAULT NULL,
  `f18` varchar(255) DEFAULT NULL,
  `f19` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_cxhis

{
  "message": "\u8868 tmp_cxhis \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhis` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `TableName` varchar(100) DEFAULT NULL,
  `OldPrefix` varchar(20) DEFAULT NULL,
  `KeyPrefix` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `1` (`TableName`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='长享历史数据迁移临时表'

de_tb_merchant20231129094137713

{
  "message": "\u8868 de_tb_merchant20231129094137713 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant20231129094137713` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

tb_feeapplicationinfo

{
  "columns": {
    "ApplyFee": {
      "message": "\u5217 ApplyFee \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonCode": {
      "message": "\u5217 ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonName": {
      "message": "\u5217 ApplyPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyReason": {
      "type": {
        "source": "varchar(300)",
        "target": "varchar(100)"
      }
    },
    "ApplyWorkStatus": {
      "message": "\u5217 ApplyWorkStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AuditRemark": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(100)"
      }
    },
    "DynamicFormJson": {
      "message": "\u5217 DynamicFormJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeGroupCode": {
      "message": "\u5217 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonCode": {
      "message": "\u5217 LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonName": {
      "message": "\u5217 LastAuditPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditTime": {
      "message": "\u5217 LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeCode": {
      "message": "\u5217 OriginalPayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeName": {
      "message": "\u5217 OriginalPayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeCode": {
      "message": "\u5217 PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeName": {
      "message": "\u5217 PayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "RuleActionLogId": {
      "message": "\u5217 RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyLoginName": {
      "message": "\u5217 SubsidyLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyName": {
      "message": "\u5217 SubsidyName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyRemark": {
      "message": "\u5217 SubsidyRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyStatus": {
      "message": "\u5217 SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u5217 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_SettleMethod": {
      "message": "\u5217 v_SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "FeeGroupCode": {
      "message": "\u7d22\u5f15 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-ApplyPersonCode": {
      "message": "\u7d22\u5f15 NON-ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-AuditStatus": {
      "message": "\u7d22\u5f15 NON-AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditPersonCode": {
      "message": "\u7d22\u5f15 NON-LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditTime": {
      "message": "\u7d22\u5f15 NON-LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-PayeeCode": {
      "message": "\u7d22\u5f15 NON-PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-RuleActionLogId": {
      "message": "\u7d22\u5f15 NON-RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-SubsidyStatus": {
      "message": "\u7d22\u5f15 NON-SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SettleMethod": {
      "message": "\u7d22\u5f15 SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u7d22\u5f15 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_resourceitem

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workorderoperationlog

{
  "message": "\u8868 tb_workorderoperationlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderoperationlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `MainId` varchar(50) DEFAULT NULL COMMENT '父表ID(tb_afcreceiverecordinfo.id,tb_userworkphoneinfo.Id,tb_userfeedetail.FeeGroupCode)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `LogType` int(11) NOT NULL COMMENT '日志类别(1-金融运营回款日志,2-工作手机信息匹配日志,3-充电桩团队管理人员费用信息修改日志,4-车电匹配失败(临时),5-团队管理变更日志)',
  `Object` varchar(50) DEFAULT NULL COMMENT '操作对象(回款登记/回款信息)',
  `OperCode` varchar(50) DEFAULT NULL COMMENT '操作人Code',
  `OperName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `Operation` varchar(50) DEFAULT NULL COMMENT '操作',
  `SummaryInfo` varchar(500) DEFAULT NULL COMMENT '日志汇总',
  `ExtraJson` json DEFAULT NULL COMMENT '其它补充信息',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间/操作时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-MainId` (`MainId`) USING BTREE,
  KEY `NON-LogType` (`LogType`) USING BTREE,
  KEY `NON-OperCode` (`OperCode`) USING BTREE,
  KEY `NON-OperName` (`OperName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=121230 DEFAULT CHARSET=utf8 COMMENT='通用操作日志表'

vi_riskworkorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_chpworkbussinessjsoninfo

{
  "message": "\u8868 tb_chpworkbussinessjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_chpworkbussinessjsoninfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `BussinessJson` json DEFAULT NULL COMMENT '处理人信息JSON',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  `LastUpdateTimeStamp` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  `v_chpWXAddProgress` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpWXAddProgress'))) VIRTUAL COMMENT '(CHP)车主微信添加进度',
  `v_chpCarUserName` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserName'))) VIRTUAL COMMENT '(CHP)车主姓名',
  `v_chpCarUserTel` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserTel'))) VIRTUAL COMMENT '(CHP)车主电话',
  `v_chpSurveyInstallType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.InstallType'))) VIRTUAL COMMENT '(CHP)安装方式',
  `v_chpElectricityMetersType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.ElectricityMetersType'))) VIRTUAL COMMENT '(CHP)电表类型',
  `v_chpFirstContactRole` smallint(6) GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')) = _utf8mb4''),0,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')))) VIRTUAL COMMENT '(CHP)首联人角色(1-运营,2-服务人员)',
  `v_chpNextFollowTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4''),NULL,if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime'))))) VIRTUAL COMMENT '(CHP)下次跟进时间',
  `v_chpCarVinNumber` varchar(100) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarVinNumber'))) VIRTUAL COMMENT '(CHP)车架号',
  `v_ChpLineActualUsage` int(11) GENERATED ALWAYS AS ((if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage'))) + if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage'))))) VIRTUAL COMMENT '(CHP)线缆实际用量(电缆硬线+电缆软线实际用量)',
  `v_chpFactoryBrand` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFactoryBrand'))) VIRTUAL COMMENT '(CHP)主机厂品牌',
  `v_chpActualSolutionCode` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpActualSolutionCode'))) VIRTUAL COMMENT '(CHP)实际处理方案Code',
  `v_chpOrderCompleteTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')))) VIRTUAL COMMENT '(CHP)工单完成时间',
  PRIMARY KEY (`Id`,`DynamicId`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-DynamicId` (`DynamicId`) USING BTREE,
  KEY `NON-LastUpdateTimeStamp` (`LastUpdateTimeStamp`),
  KEY `NON-v_chpWXAddProgress` (`v_chpWXAddProgress`) USING BTREE,
  KEY `NON-v_chpCarUserName` (`v_chpCarUserName`) USING BTREE,
  KEY `NON-v_chpCarUserTel` (`v_chpCarUserTel`) USING BTREE,
  KEY `NON-v_chpSurveyInstallType` (`v_chpSurveyInstallType`) USING BTREE,
  KEY `NON-v_chpElectricityMetersType` (`v_chpElectricityMetersType`) USING BTREE,
  KEY `NON-v_chpFirstContactRole` (`v_chpFirstContactRole`) USING BTREE,
  KEY `NON-v_chpNextFollowTime` (`v_chpNextFollowTime`) USING BTREE,
  KEY `NON-v_chpCarVinNumber` (`v_chpCarVinNumber`) USING BTREE,
  KEY `NON-v_chpFactoryBrand` (`v_chpFactoryBrand`) USING BTREE,
  KEY `NON-v_chpActualSolutionCode` (`v_chpActualSolutionCode`) USING BTREE,
  KEY `NON-chpOrderCompleteTime` (`v_chpOrderCompleteTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4131 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='业务域_工单业务信息JOSN冗余表(CHP)'

workflowitems_bak

{
  "message": "\u8868 workflowitems_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowitems_bak`;

basic_ordersearchproperty

{
  "columns": {
    "DataSourceJson": {
      "message": "\u5217 DataSourceJson \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "DataSourceJsons": {
      "message": "\u5217 DataSourceJsons \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Deleted": {
      "nullable": {
        "source": true,
        "target": false
      }
    }
  }
}

变更SQL:

ALTER TABLE `basic_ordersearchproperty` DROP COLUMN `DataSourceJson`;

tmp_workimp_mid

{
  "message": "\u8868 tmp_workimp_mid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp_mid` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `workorderid` varchar(12) DEFAULT NULL,
  `ordertype` varchar(200) DEFAULT NULL,
  `SubjectCodeSummary` varchar(200) DEFAULT NULL,
  `SubjectNameSummary` varchar(200) DEFAULT NULL,
  `SubjectNum` int(11) DEFAULT NULL,
  `appcode` varchar(200) DEFAULT NULL,
  `custname` varchar(200) DEFAULT NULL,
  `customerid` varchar(200) DEFAULT NULL,
  `CustStoreId` varchar(200) DEFAULT NULL,
  `storename` varchar(200) DEFAULT NULL,
  `CustStoreCode` varchar(200) DEFAULT NULL,
  `CustSettleId` varchar(200) DEFAULT NULL,
  `settlename` varchar(200) DEFAULT NULL,
  `brandname` varchar(200) DEFAULT NULL,
  `procode` varchar(200) DEFAULT NULL,
  `proname` varchar(200) DEFAULT NULL,
  `citycode` varchar(200) DEFAULT NULL,
  `cityname` varchar(200) DEFAULT NULL,
  `areacode` varchar(200) DEFAULT NULL,
  `areaname` varchar(200) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  `carusername` varchar(200) DEFAULT NULL,
  `carusertel` varchar(200) DEFAULT NULL,
  `installperson` varchar(200) DEFAULT NULL,
  `loginname` varchar(200) DEFAULT NULL,
  `usercenterid` varchar(200) DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL,
  `rownum` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8192 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

home_worktimetrend

{
  "message": "\u8868 home_worktimetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_worktimetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `WorkHour` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工作时间段',
  `WorkDayCnt` int(11) NOT NULL DEFAULT '0' COMMENT '工作日完成数量',
  `WeekendCnt` int(11) NOT NULL DEFAULT '0' COMMENT '非工作日完成数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkHour` (`WorkHour`),
  KEY `NON_ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_近1周作业结束时间段分布'

workflowruntimesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

columnss

{
  "message": "\u8868 columnss \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `columnss` (
  `columnsss` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

common_ruleactionlog

{
  "message": "\u8868 common_ruleactionlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `common_ruleactionlog` (
  `Id` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键ID(AL)',
  `TargetId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '业务Id(tb_workorderinfo.Id)',
  `InputParams` json DEFAULT NULL COMMENT '输入参数json',
  `OutParams` json DEFAULT NULL COMMENT '输出参数json',
  `SubRuleCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则编码(common_subruleinfo.SubRuleCode)',
  `SubRuleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则名称(common_subruleinfo.SubRuleName)',
  `RuleTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规则类别编码(basic_datadictionary.code)',
  `VersionIndex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本',
  `IsMatching` int(11) DEFAULT NULL COMMENT '是否匹配(1是 0否)',
  `ExceptionInfo` varchar(200) DEFAULT NULL COMMENT '异常信息',
  `MatchRulesJson` json DEFAULT NULL COMMENT '匹配条件Json',
  `ActionsJson` json DEFAULT NULL COMMENT '执行动作Json',
  `RuleMessageJson` json DEFAULT NULL COMMENT '规则报文json',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商Code',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-OrgCode` (`OrgCode`) USING BTREE,
  KEY `NON-TargetId` (`TargetId`) USING BTREE,
  KEY `NON-RuleTypeCode` (`RuleTypeCode`) USING BTREE,
  KEY `NON-SubRuleCode` (`SubRuleCode`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_规则操作日志表'

tb_phoneorderrelation

{
  "message": "\u8868 tb_phoneorderrelation \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_phoneorderrelation` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机信息表ID(tb_userworkphoneinfo.Id)',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID(tb_workorderinfo.Id)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编号',
  `CustomerId` varchar(100) DEFAULT NULL COMMENT '工单客户ID',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '工单客户名称',
  `NegotiatorId` varchar(12) DEFAULT NULL COMMENT '谈判记录ID(tb_afcnegotiationrecordinfo.Id)',
  `NegotiatorTime` datetime DEFAULT NULL COMMENT '谈判记录生成时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NegotiatorId` (`NegotiatorId`),
  KEY `NegotiatorTime` (`NegotiatorTime`),
  KEY `PhoneInfoId` (`PhoneInfoId`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=2933 DEFAULT CHARSET=utf8 COMMENT='工作手机与工单关系表(匹配结果表)'

tmp_userclockininfo

{
  "message": "\u8868 tmp_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL,
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工打卡设置信息表'

vi_workorderforsearch

{
  "message": "\u8868 vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

tb_invoiceinfo

{
  "columns": {
    "Company": {
      "message": "\u5217 Company \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Conpany": {
      "message": "\u5217 Conpany \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "MainId": {
      "message": "\u5217 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "MainId": {
      "message": "\u7d22\u5f15 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_invoiceinfo` DROP COLUMN `Conpany`;
ALTER TABLE `tb_invoiceinfo` DROP COLUMN `MainId`;
ALTER TABLE `tb_invoiceinfo` DROP INDEX `MainId`;

hangfire_distributedlock

{
  "indexes": {
    "Resource": {
      "message": "\u7d22\u5f15 Resource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_district_bak_a

{
  "message": "\u8868 basic_district_bak_a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_district_bak_a`;

de_testuser

{
  "message": "\u8868 de_testuser \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

vi_workorderfilmdetail_2

{
  "message": "\u8868 vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

tb_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

tm_persons2

{
  "message": "\u8868 tm_persons2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons2` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

vi_workorderrecheckdetail

{
  "message": "\u8868 vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

home_completerate

{
  "message": "\u8868 home_completerate \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_completerate` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `7CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '7日内完成单量',
  `15CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '15日内完成单量',
  `30CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '30日内完成单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_工单完成率'

slow1119

{
  "message": "\u8868 slow1119 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1119` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

teststruct

{
  "message": "\u8868 teststruct \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `teststruct` (
  `TABLE_CATALOG` text,
  `TABLE_SCHEMA` text,
  `TABLE_NAME` text,
  `COLUMN_NAME` text,
  `ORDINAL_POSITION` int(11) DEFAULT NULL,
  `COLUMN_DEFAULT` int(11) DEFAULT NULL,
  `IS_NULLABLE` text,
  `DATA_TYPE` text,
  `CHARACTER_MAXIMUM_LENGTH` double DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` double DEFAULT NULL,
  `NUMERIC_PRECISION` int(11) DEFAULT NULL,
  `NUMERIC_SCALE` int(11) DEFAULT NULL,
  `DATETIME_PRECISION` int(11) DEFAULT NULL,
  `CHARACTER_SET_NAME` text,
  `COLLATION_NAME` text,
  `COLUMN_TYPE` text,
  `COLUMN_KEY` text,
  `EXTRA` text,
  `PRIVILEGES` text,
  `COLUMN_COMMENT` text,
  `GENERATION_EXPRESSION` text,
  `SRS_ID` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_formlastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

vi_chpworkorderdetial

{
  "message": "\u8868 vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

workflowruntimetimingmsgsends

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_ordercount

{
  "message": "\u8868 home_ordercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `FinishedCnt` int(11) NOT NULL DEFAULT '0' COMMENT '完单量',
  `FinishedRate` int(11) DEFAULT NULL COMMENT '完单率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=20649 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_单据信息'

move_hisworkorderinfo

{
  "message": "\u8868 move_hisworkorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `move_hisworkorderinfo`;

basic_userroleinfo

{
  "indexes": {
    "NON-UserCenterId": {
      "message": "\u7d22\u5f15 NON-UserCenterId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-UserCenterId\nSELECT * FROM tb_whchangelog": {
      "message": "\u7d22\u5f15 NON-UserCenterId\nSELECT * FROM tb_whchangelog \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `basic_userroleinfo` DROP INDEX `NON-UserCenterId
SELECT * FROM tb_whchangelog`;

tb_afcfeedetail

{
  "indexes": {
    "NON-WorkOrderId-PriceTypeCode": {
      "message": "\u7d22\u5f15 NON-WorkOrderId-PriceTypeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_datalastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

home_ordercusttop

{
  "message": "\u8868 home_ordercusttop \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttop` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_累计下单客户TOP10'

tmp_cxhisorderid

{
  "message": "\u8868 tmp_cxhisorderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhisorderid` (
  `Id` varchar(20) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='长享历史数据工单Id'

vi_workorderlistforafc

{
  "message": "\u8868 vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

rp_chpworkorderdetail

{
  "message": "\u8868 rp_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_chpworkorderdetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `WorkOrderId` varchar(36) DEFAULT NULL COMMENT '工单ID',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编码',
  `OrderType` varchar(50) DEFAULT NULL,
  `SubjectNameSummary` varchar(100) DEFAULT NULL COMMENT '科目名称汇总',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `ProName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下单备注',
  `FirstConcatRole` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联人角色',
  `chpCarUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主姓名',
  `chpCarUserTel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主电话',
  `chpCarVinNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车架号',
  `IsWithPile` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '带桩上门',
  `IsSelfBuiltHouse` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否自建房',
  `CarParkin` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车位',
  `ProtectionBox` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '保护箱',
  `InstallType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装方式',
  `GetElectricityType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电方式',
  `Schedule` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '立表进度',
  `ElectricityMetersType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '电表类型',
  `PowerPointLocation` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电点位置',
  `WechatNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信号/群名',
  `chpWXAddProgress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信添加进度',
  `FirstContactRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联备注',
  `WorkStatusName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CurrentPerson` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '当前处理人',
  `SubmmitTime` datetime DEFAULT NULL COMMENT '工单提交时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `chpNextFollowTime` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `LastAppointStatus` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最新异常反馈类型',
  `LastFailAppointConcat` varchar(500) DEFAULT NULL COMMENT '最新异常反馈详情(取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间)',
  `AllFailAppointConcat` text COMMENT '异常反馈记录(按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间)',
  `SurveyTime` datetime DEFAULT NULL COMMENT '勘测完成时间',
  `CompleteTime` datetime DEFAULT NULL COMMENT '安装完成时间(安装)/施工完成时间(售后)',
  `ClosedAt` datetime DEFAULT NULL COMMENT '关闭时间',
  `AuditRejectRemark` text COMMENT '质检不通过备注(勘测、安装/售后)每次不通过的备注都放一起。',
  `AuditRejectNum` int(11) DEFAULT NULL COMMENT '质检驳回次数(勘测驳回+安装驳回/售后驳回的次数)',
  `LastAuditRejectTime` datetime DEFAULT NULL COMMENT '最新质检驳回时间',
  `AuditTime` datetime DEFAULT NULL COMMENT '(安装/售后)质检通过时间',
  `IsAddition` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否存在增项',
  `LastSurveyAuditCode` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人工号',
  `LastSurveyAuditName` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人姓名',
  `LastInstallAuditCode` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人工号',
  `LastInstallAuditName` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人姓名',
  `AdditionFeeSettleRoad` varchar(100) DEFAULT NULL COMMENT '增项结算路径',
  `AdditionFeePayTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '结算方式',
  `AdditionFeeChangeRemark` varchar(200) DEFAULT NULL COMMENT '增项结算修改原因',
  `AdditionFeeDetail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '增项明细',
  `AdditionFeePrice` decimal(18,5) DEFAULT NULL COMMENT '增项费(元)',
  `AdditionFeePaySource` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项付款方式',
  `AdditionFeeOfflinePayer` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项打款人',
  `AdditionFeePayTime` datetime DEFAULT NULL COMMENT '增项打款时间',
  `ServiceGoodsName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装服务商品',
  `ServiceGoodsPrice` decimal(18,5) DEFAULT NULL COMMENT '安装服务商品价格',
  `Power` decimal(18,1) DEFAULT NULL COMMENT '功率',
  `FirstPartySettleLength` varchar(50) DEFAULT NULL COMMENT '甲方结算套餐长度',
  `PackageLength` varchar(50) DEFAULT NULL COMMENT '车企套餐长度',
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '品牌',
  `chpBrandInfoURL` varchar(200) DEFAULT NULL COMMENT '品牌资料',
  `ProjectWarrantyPeriod` int(11) DEFAULT NULL COMMENT '工程质保期(年)',
  `SurveyName` varchar(45) DEFAULT NULL COMMENT '勘测人姓名',
  `Surveycode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测人账号',
  `InstallName` varchar(100) DEFAULT NULL COMMENT '安装人姓名(安装)/施工人姓名(售后)',
  `InstallCode` varchar(50) DEFAULT NULL COMMENT '安装人Code(安装)/施工人Code(售后)',
  `Distance` decimal(18,1) DEFAULT NULL COMMENT '单程服务距离(km)',
  `InstallAscription` varchar(50) DEFAULT NULL COMMENT '安装人员外勤属性(安装)/施工人属性(售后)',
  `FirstRecordTime` datetime DEFAULT NULL COMMENT '首次提交安装结果时间',
  `LastRecordTime` datetime DEFAULT NULL COMMENT '最新一次提交安装结果时间',
  `EmployeeAttributes` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装人员属性',
  `SurveyMethod` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测方式',
  `IndividualReason` varchar(200) DEFAULT NULL COMMENT '单独上门原因',
  `SurveyResult` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否继续安装',
  `ResultReason` varchar(200) DEFAULT NULL COMMENT '不安装原因',
  `SurveyRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测施工备注',
  `Seller` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '充电桩销售方',
  `GoodsName` varchar(50) DEFAULT NULL COMMENT '桩商品',
  `MaterialPrice` decimal(18,5) DEFAULT NULL COMMENT '桩价格',
  `GoodsSource` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '桩来源',
  `MaterialNo` varchar(50) DEFAULT NULL COMMENT '中瑞桩编码',
  `MaterialType` varchar(50) DEFAULT NULL COMMENT '充电桩类型',
  `EscrowMaterialType` varchar(50) DEFAULT NULL COMMENT '代管桩物料',
  `EscrowMaterialNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代管桩编码',
  `PileWarrantyPeriod` int(11) DEFAULT NULL COMMENT '电桩质保期(年)',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '充电桩出货仓库',
  `chpIsSelfWiring` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主是否自布线',
  `HardWire` text COMMENT '电缆硬线LM00008497(出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注)',
  `FlexibleCord` text COMMENT '电缆软线LM00008498',
  `Drivepipe` text COMMENT '套管LM00008502',
  `LeakageInsurance` text COMMENT '漏保LM00008500',
  `AirSwitchBox` text COMMENT '空开盒LM00008501',
  `ChargingPileColumn` text COMMENT '立柱LM00008499',
  `chpInstallRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装施工备注',
  `chpNextFollow` varchar(500) DEFAULT NULL COMMENT '安装后跟进记录',
  `CreatedAt` datetime DEFAULT NULL COMMENT '建单时间',
  `FirstConcatPersonCode` varchar(50) DEFAULT NULL COMMENT '首联人code',
  `FirstConcatPersonName` varchar(100) DEFAULT NULL COMMENT '首联人name',
  `FirstConcatTime` datetime DEFAULT NULL COMMENT '首联人时间',
  `ChpLineActualUsage` int(11) DEFAULT NULL COMMENT '线缆实际用量(电缆硬线+电缆软线实际用量)',
  `chpGoodsPackageSubsidyPrice` decimal(18,4) DEFAULT NULL COMMENT '充电桩补贴套餐价格)',
  `LastApplyReason` varchar(200) DEFAULT NULL COMMENT '最新异常反馈的申请原因',
  `chpCarModel` varchar(200) DEFAULT NULL COMMENT '车型(售后)',
  `chpProModel` varchar(200) DEFAULT NULL COMMENT '产品型号(售后)',
  `chpChargerNo` varchar(200) DEFAULT NULL COMMENT '桩编号(售后)',
  `chpOriginalInstallPerson` varchar(200) DEFAULT NULL COMMENT '原施工人(售后)',
  `chpFactoryBrand` varchar(200) DEFAULT NULL COMMENT '主机厂品牌(售后)',
  `chpProblemDescription` varchar(600) DEFAULT NULL COMMENT '问题描述(售后)',
  `chpFaulttime` varchar(200) DEFAULT NULL COMMENT '故障时间(售后)',
  `chpFaultClass` varchar(200) DEFAULT NULL COMMENT '故障分类(售后)',
  `chpSuggestedSolution` varchar(600) DEFAULT NULL COMMENT '建议解决方案(售后)',
  `chpWarrantyStatus` varchar(60) DEFAULT NULL COMMENT '保修状态(售后)',
  `chpActualSolutionName` varchar(1000) DEFAULT NULL COMMENT '实际处理方案(实际处理方案为其它时展示详细处理信息)(售后)',
  `chpIfCharge` varchar(60) DEFAULT NULL COMMENT '是否收费(售后)',
  `chpAfterSaleRemark` varchar(600) DEFAULT NULL COMMENT '施工备注(售后)',
  `chpLogisticsNum` varchar(100) DEFAULT NULL COMMENT '物流单号(售后)',
  `chpShippingWarehouse` varchar(200) DEFAULT NULL COMMENT '出货仓库(售后)',
  `chpWarehouseMaterials` text COMMENT '所用物料(拼接)(售后)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  `chpMaterialSN` varchar(100) DEFAULT NULL COMMENT '故障物料SN',
  `chpWorkerSettlePrice` varchar(50) DEFAULT NULL COMMENT '优工结算价(总价)',
  `chpWorkerSettlementMethod` varchar(50) DEFAULT NULL COMMENT '客户结算价',
  `chpWorkerFeeRemark` varchar(500) DEFAULT NULL COMMENT '备注-操作人/操作时间',
  `chpInstallConditionDate` date DEFAULT NULL COMMENT '具备安装条件日期',
  `chpPileInventoryResults` varchar(50) DEFAULT NULL COMMENT '桩盘点结果',
  `chpColumnInventoryResults` varchar(50) DEFAULT NULL COMMENT '立柱盘点结果',
  `AdditionFeeCommissionRatio` varchar(50) DEFAULT NULL COMMENT '增项费分佣比例(%)',
  `AllSubsidy` decimal(20,2) DEFAULT NULL COMMENT '总费用',
  `InstallPriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-安装',
  `AfterSalePriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-售后',
  `ChargingPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '公桩计件(申请)',
  `LeakageInsuranceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '漏保补贴',
  `GalvanizedPipeSubsidy` decimal(20,2) DEFAULT NULL COMMENT '镀锌管补贴',
  `AdditionSubsidy` decimal(20,2) DEFAULT NULL COMMENT '增项',
  `LineSubsidy` decimal(20,2) DEFAULT NULL COMMENT '电缆补贴',
  `RemoteSubsidy` decimal(20,2) DEFAULT NULL COMMENT '远补',
  `CarSubsidy` decimal(20,2) DEFAULT NULL COMMENT '用车补贴',
  `BonusSubsidy` decimal(20,2) DEFAULT NULL COMMENT '奖金',
  `DifferenceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '差异补发',
  `ComplaintDeduction` decimal(20,2) DEFAULT NULL COMMENT '客诉扣款',
  `DifferenceDeduction` decimal(20,2) DEFAULT NULL COMMENT '差异扣除',
  `chpPilesNum` int(11) DEFAULT NULL COMMENT '(充电桩)桩数量',
  `chpGunsNum` int(11) DEFAULT NULL COMMENT '(充电桩)枪数量',
  `chpParkSpaceNum` int(11) DEFAULT NULL COMMENT '(充电桩)车位数量',
  `DispatchTime` datetime DEFAULT NULL COMMENT '勘测调度完成时间/调度完成时间',
  `CustomerAuditApprovalTime` datetime DEFAULT NULL COMMENT '客户审核通过时间',
  `chpOrderSource` varchar(50) DEFAULT NULL COMMENT '(充电桩)订单来源',
  `CurrentPersonCode` varchar(50) DEFAULT NULL COMMENT '当前处理人编号',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-CreatedAt` (`CreatedAt` DESC)
) ENGINE=InnoDB AUTO_INCREMENT=19432 DEFAULT CHARSET=utf8 COMMENT='充电桩已完成工单明细表'

tb_abnormalorder_log

{
  "columns": {
    "LastUpdatedTimestamp": {
      "message": "\u5217 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "MessageRemindJson": {
      "message": "\u5217 MessageRemindJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "LastUpdatedTimestamp": {
      "message": "\u7d22\u5f15 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_usermapdaily

{
  "message": "\u8868 home_usermapdaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdaily` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `Alng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `Alat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ServicerCnt` int(11) DEFAULT NULL COMMENT '覆盖人数',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=16639 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图日报'

tm_userinfo20210727

{
  "message": "\u8868 tm_userinfo20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfo20210727`;

basic_subjectclass

{
  "message": "\u8868 basic_subjectclass \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `basic_subjectclass` (
  `Id` char(12) NOT NULL COMMENT '主键(SS)',
  `TenantId` char(12) DEFAULT NULL COMMENT '租户Id',
  `ClassCode` varchar(50) DEFAULT NULL COMMENT '科目编码',
  `ClassName` varchar(100) DEFAULT NULL COMMENT '科目名称',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '创建人Id',
  `CreatedAt` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  `UpdatedById` varchar(36) DEFAULT NULL COMMENT '更新人Id',
  `UpdatedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '更新时间',
  `DeletedById` varchar(36) DEFAULT NULL COMMENT '删除人',
  `DeletedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '删除时间',
  `Deleted` tinyint(4) DEFAULT '0' COMMENT '是否删除(0否1是)',
  PRIMARY KEY (`Id`),
  KEY `NON-ClassCode` (`ClassCode`),
  KEY `NON-TenantId` (`TenantId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础信息域_服务科目分类'

workflowruntimeattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workjsoninfo

{
  "message": "\u8868 workjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `workjsoninfo` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsCustomer` tinyint(1) DEFAULT NULL,
  `CustCoopType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallTime` datetime DEFAULT NULL,
  `RequiredTime` datetime DEFAULT NULL,
  `LinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SourceType` smallint(6) DEFAULT NULL,
  `SecondLinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SecondLinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsUrgent` tinyint(1) DEFAULT NULL,
  `CustUniqueSign` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveTime` datetime DEFAULT NULL,
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveSuccessfulTime` datetime DEFAULT NULL,
  `CreatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) DEFAULT NULL,
  `AppointStatus` smallint(6) DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreateType` smallint(6) DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecCompleteTime` datetime DEFAULT NULL,
  `RecRecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecRecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfOrderCompletetime` datetime DEFAULT NULL,
  `WfAssignor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfDirectOrderAccept` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrTypeStatus` smallint(6) DEFAULT NULL,
  `WorkOdrCloseStatusName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrSuspendStatus` smallint(6) DEFAULT NULL,
  `WorkStatus` smallint(6) DEFAULT NULL,
  `WorkOdrClosedAt` datetime DEFAULT NULL,
  `AFCCreatedAt` datetime DEFAULT NULL,
  `AFCRetreatTime` datetime DEFAULT NULL,
  `AFCFollowFrequency` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AFCIfRemove` smallint(6) DEFAULT NULL,
  `AFCReturnedTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `VHSAppraisalStatus` smallint(6) DEFAULT NULL,
  `VHSReceiverLoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OperatingInfo` json DEFAULT NULL,
  `OperatedInfo` json DEFAULT NULL,
  `ServiceProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkflowInfo` json DEFAULT NULL,
  `WorkServiceSubject` json DEFAULT NULL,
  `AFCWorkFinanceRecord` json DEFAULT NULL,
  `AFCPaymentReport` json DEFAULT NULL,
  `VHSWorkFileReceiveInfo` json DEFAULT NULL,
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkAddressInfo` json DEFAULT NULL,
  `AFCLastNegotiatorTime` datetime DEFAULT NULL,
  `AFCFollowFrequencyType` smallint(6) DEFAULT NULL,
  `AFCCompleteType` smallint(6) DEFAULT NULL,
  `AFCReportDeadline` datetime DEFAULT NULL,
  `AFCUnFollowDays` bigint(20) DEFAULT NULL,
  `AFCAppointTime` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=2416 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=2684 ROW_FORMAT=DYNAMIC

vi_workorderlistforchp

{
  "message": "\u8868 vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

workflowcompletesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_vi_workstepinfo_2021

{
  "message": "\u8868 tm_vi_workstepinfo_2021 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_vi_workstepinfo_2021`;

tb_workfeeitem

{
  "indexes": {
    "NON-FeePurpose": {
      "message": "\u7d22\u5f15 NON-FeePurpose \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workresourceinfo

{
  "columns": {
    "ComparisonResults": {
      "message": "\u5217 ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceCode": {
      "message": "\u5217 ResourceCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ComparisonResults": {
      "message": "\u7d22\u5f15 NON-ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

test_service_info

{
  "message": "\u8868 test_service_info \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_service_info` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_custcolumn

{
  "indexes": {
    "NON-Value": {
      "message": "\u7d22\u5f15 NON-Value \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownoderelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_workorderlistforchp_audit

{
  "message": "\u8868 vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

de_testuser20240327101659637

{
  "message": "\u8868 de_testuser20240327101659637 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser20240327101659637` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

home_userarea

{
  "message": "\u8868 home_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户姓名',
  `Ascription` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  `TeamCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队Code(basic_teaminfo.Code)',
  `TeamName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队名称',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProviderName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商名称',
  `OperateAttributes` smallint(6) DEFAULT NULL COMMENT '经营属性(0自营 1非自营)',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `CheckDate` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-TeamCode` (`TeamCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-CheckDate` (`CheckDate`),
  KEY `NON-OrderTypeName` (`OrderTypeName`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-UserId` (`UserId`),
  KEY `NON-CityCode` (`CityCode`),
  KEY `NON-Ascription` (`Ascription`),
  KEY `NON-LoginName` (`LoginName`)
) ENGINE=InnoDB AUTO_INCREMENT=327676 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础信息_人员覆盖区域信息'

tb_feeiteminfo

{
  "indexes": {
    "GenerationMode": {
      "message": "\u7d22\u5f15 GenerationMode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workresourceinfo

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderrecheckinfo

{
  "message": "\u8868 tb_workorderrecheckinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderrecheckinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `RecheckStatus` smallint(6) DEFAULT NULL COMMENT '复检状态:0.复检不通过;1.复检通过;2.待复检;',
  `RecheckContent` varchar(100) DEFAULT NULL COMMENT '复检不通过原因',
  `RecheckPersonCode` varchar(50) DEFAULT NULL COMMENT '复检人账号',
  `RecheckPersonName` varchar(50) DEFAULT NULL COMMENT '复检人名称',
  `FirstRecheckTime` datetime DEFAULT NULL COMMENT '首次复检时间',
  `RecheckPassTime` datetime DEFAULT NULL COMMENT '复检通过时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-RecheckPassTime` (`RecheckPassTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='业务域_复检工单信息表'

tm_workresourceinfo_20210705a

{
  "message": "\u8868 tm_workresourceinfo_20210705a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705a`;

workflowruntimesubscribemsgs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

counter

{
  "message": "\u8868 counter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `counter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Counter_Key` (`Key`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

home_ordercusttrend

{
  "message": "\u8868 home_ordercusttrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_TOP3客户下单量趋势'

tb_appointment

{
  "columns": {
    "Deleted": {
      "nullable": {
        "source": false,
        "target": true
      }
    }
  }
}

serviceinfo

{
  "message": "\u8868 serviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8

tmp_chprporderid

{
  "message": "\u8868 tmp_chprporderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprporderid` (
  `WorkOrderId` varchar(12) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`WorkOrderId`),
  KEY `WorkStatus` (`WorkStatus`) USING BTREE,
  KEY `Result` (`Result`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩明细表导出工单ID及批次(即用即删)_长期表'

flink_tableb

{
  "message": "\u8868 flink_tableb \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tableb`;

workflownodes_bak

{
  "message": "\u8868 workflownodes_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodes_bak`;

vi_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_completebaseinfo

{
  "indexes": {
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderacceptinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimeactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_vhsworkorderinfo

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimereminderlogs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

basic_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_afcreceiverecordinfo

{
  "message": "\u8868 tb_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcreceiverecordinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(RC)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL COMMENT '客户回款日期',
  `ReceivePrice` decimal(20,2) DEFAULT NULL COMMENT '客户回款金额',
  `ReceiveIssue` int(11) DEFAULT NULL COMMENT '客户回款期数',
  `ReceiveStatus` varchar(20) DEFAULT NULL COMMENT '状态描述',
  `ReceiveStatusRemark` varchar(50) DEFAULT NULL COMMENT '状态描述备注',
  `PersonAssess` tinyint(4) DEFAULT NULL COMMENT '人员考核(0-否,1-是)',
  `ProAssess` tinyint(4) DEFAULT NULL COMMENT '省份考核(0-否,1-是)',
  `AddRemark1` varchar(200) DEFAULT NULL COMMENT '补充描述1',
  `AddRemark2` varchar(200) DEFAULT NULL COMMENT '补充描述2',
  `PromptMerits` decimal(20,2) DEFAULT NULL COMMENT '协催绩效',
  `SettleTime` datetime DEFAULT NULL COMMENT '结算时间',
  `SettleRemark` int(11) DEFAULT NULL COMMENT '结算备注(0-正常结算,1-超期还款,2-结清/交车,3-项目对账)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdateById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '运营登记日期',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ReceiveTime` (`ReceiveDate`) USING BTREE,
  KEY `NON-ReceiveStatus` (`ReceiveStatus`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-UpdatedAt` (`UpdatedAt`) USING BTREE,
  KEY `NON-SettleTime` (`SettleTime`),
  KEY `NON-SettleRemark` (`SettleRemark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融运营回款信息'

serviceinfodetail

{
  "message": "\u8868 serviceinfodetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfodetail` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

vi_tireworkorderinfo

{
  "message": "\u8868 vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

vi_workorderinfo_mobile

{
  "message": "\u8868 vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

workflownodeactions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_districtyx

{
  "message": "\u8868 tmp_districtyx \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userruleinfo_serv

{
  "message": "\u8868 tb_userruleinfo_serv \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userruleinfo_serv` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `OrgCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserCenterId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '人员ID(tb_userinfo.UserCenterId)',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员登录名',
  `OrderType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `DistrictCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限内地区编码',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-DistrictCode` (`DistrictCode`),
  KEY `NON-LoginName` (`LoginName`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-OrgCode` (`OrgCode`),
  KEY `NON-UserCenterId` (`UserCenterId`)
) ENGINE=InnoDB AUTO_INCREMENT=2377 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_人员区域权限表'

vi_workorderusedcarcheck2

{
  "message": "\u8868 vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

workflowruntimerelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_persons20250304

{
  "message": "\u8868 tm_persons20250304 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250304` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tm_updatepropertycode20210923

{
  "message": "\u8868 tm_updatepropertycode20210923 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_updatepropertycode20210923`;

workflowhandlingstatus_bak

{
  "message": "\u8868 workflowhandlingstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowhandlingstatus_bak`;

tb_userdetail

{
  "indexes": {
    "NON-AffiliatedInstitution": {
      "message": "\u7d22\u5f15 NON-AffiliatedInstitution \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_riskworkorderinfo_other1

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

common_propertymapping

{
  "columns": {
    "MappingPropertyCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_workfixgoodsdetail

{
  "columns": {
    "IsLoss": {
      "message": "\u5217 IsLoss \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetail_test

{
  "message": "\u8868 vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

de_tb_merchant01

{
  "message": "\u8868 de_tb_merchant01 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant01` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息01'

tb_userclockininfo

{
  "message": "\u8868 tb_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-UserWorkStatus` (`UserWorkStatus`) USING BTREE,
  KEY `NON-IsAutomatic` (`IsAutomatic`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2168 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡设置信息表'

rp_vhsworkorderdetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userclockindeviceinfo

{
  "message": "\u8868 tb_userclockindeviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockindeviceinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(100) DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `VisitorRole` varchar(50) DEFAULT NULL COMMENT '角色',
  `InstitutionName` varchar(100) DEFAULT NULL COMMENT '部门',
  `ProCode` varchar(20) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(20) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '区域名称',
  `Address` varchar(500) DEFAULT NULL COMMENT '详细地址',
  `ClockInDate` date NOT NULL COMMENT '打卡日期',
  `ClockInTime` time NOT NULL COMMENT '打卡时间',
  `ClockInLng` varchar(20) DEFAULT NULL COMMENT '打卡经度',
  `ClockInLat` varchar(50) DEFAULT NULL COMMENT '打卡纬度',
  `ClockInAddress` varchar(200) DEFAULT NULL COMMENT '打卡地址',
  `InsertTime` datetime(6) DEFAULT NULL,
  `Deleted` smallint(6) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-ClockInDate` (`ClockInDate`) USING BTREE,
  KEY `NON-ClockInTime` (`ClockInTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-ProCode` (`ProCode`) USING BTREE,
  KEY `NON-CityCode` (`CityCode`) USING BTREE,
  KEY `NON-AreaCode` (`AreaCode`) USING BTREE,
  KEY `NON-ProName` (`ProName`) USING BTREE,
  KEY `NON-CityName` (`CityName`) USING BTREE,
  KEY `NON-AreaName` (`AreaName`) USING BTREE,
  KEY `NON-ClockInLng` (`ClockInLng`) USING BTREE,
  KEY `NON-ClockInLat` (`ClockInLat`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=213 ROW_FORMAT=DYNAMIC COMMENT='用户下班打卡信息表'

tm_main

{
  "message": "\u8868 tm_main \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_main`;

rp_afcworkorderdetail

{
  "columns": {
    "AccommodateSign": {
      "message": "\u5217 AccommodateSign \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimbursableDistance": {
      "type": {
        "source": "decimal(18,2)",
        "target": "varchar(500)"
      }
    },
    "AuditStatus": {
      "message": "\u5217 AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeRemark": {
      "message": "\u5217 FeeRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FindWho": {
      "message": "\u5217 FindWho \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OverdueGrade": {
      "message": "\u5217 OverdueGrade \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnCountReward": {
      "message": "\u5217 ReturnCountReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnPriceReward": {
      "message": "\u5217 ReturnPriceReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondLinkMan": {
      "message": "\u5217 SecondLinkMan \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondVisitStatus": {
      "message": "\u5217 SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "NON-WorkOrderId": {
      "message": "\u7ea6\u675f NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

check_workflowjsoninfo

{
  "message": "\u8868 check_workflowjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsoninfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `CheckType` smallint(6) DEFAULT NULL COMMENT '问题原因',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '验证日期',
  `CorrectStatus` smallint(6) DEFAULT NULL COMMENT '更正状态',
  `UnCorrectJson` json DEFAULT NULL COMMENT '历史错误Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-CheckDate` (`CheckDate`) USING BTREE,
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CheckType` (`CheckType`) USING BTREE,
  KEY `NON-CorrectStatus` (`CorrectStatus`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8612340 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=74 ROW_FORMAT=DYNAMIC COMMENT='工单工作流数据验证日志表'

tb_workorderrelation

{
  "columns": {
    "RelateNo": {
      "message": "\u5217 RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-RelateNo": {
      "message": "\u7d22\u5f15 NON-RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_vhsworkorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverLoginName": {
      "message": "\u5217 ReceiverLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserId": {
      "message": "\u5217 ReceiverUserId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserName": {
      "message": "\u5217 ReceiverUserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

home_auditcount

{
  "message": "\u8868 home_auditcount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_auditcount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '质检单量',
  `OnceAuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '首次质检即完成单量',
  `OnceAuditRate` int(11) DEFAULT NULL COMMENT '质检一次通过率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=13739 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_质检信息'

tb_prepaymentorderinfo

{
  "message": "\u8868 tb_prepaymentorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tb_prepaymentorderinfo`;

home_areageo

{
  "message": "\u8868 home_areageo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_areageo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `ALat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ALng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=3821 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_工单完成率地区经纬度'

tmp_tablename

{
  "message": "\u8868 tmp_tablename \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename` (
  `tablename` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vvi_workorderauditinfoforafc

{
  "message": "\u8868 vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

workflowcompleteactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetail

{
  "message": "\u8868 vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

tb_workflowrestartlog

{
  "message": "\u8868 tb_workflowrestartlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workflowrestartlog` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(15) DEFAULT NULL COMMENT '工单ID',
  `RestartType` int(11) DEFAULT NULL COMMENT '事件类型',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(20) DEFAULT NULL COMMENT '工单类型',
  `CreatedAt` datetime(3) DEFAULT NULL COMMENT '数据创建时间',
  `Num` int(11) DEFAULT '0' COMMENT '重试次数',
  `LastRestartTime` datetime(3) DEFAULT NULL COMMENT '上次重试时间',
  `OtherData` text COMMENT '附加数据',
  `Remark` text COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `WorkOrderId` (`WorkOrderId`),
  KEY `Num` (`Num`),
  KEY `CreatedAt` (`CreatedAt`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='作流外挂接口执行失败重试日志'

tb_afcnegotiationrecordinfo

{
  "columns": {
    "ConnectChannel": {
      "message": "\u5217 ConnectChannel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserName": {
      "message": "\u5217 UserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserTel": {
      "message": "\u5217 UserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "VisitorTel": {
      "message": "\u5217 VisitorTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxCode": {
      "message": "\u5217 WxCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxRemark": {
      "message": "\u5217 WxRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

config_usermessagereminder

{
  "message": "\u8868 config_usermessagereminder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `config_usermessagereminder` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `MessageType` smallint(6) DEFAULT NULL COMMENT '消息提醒类型(1语音 2横幅)',
  `RestingEnable` smallint(6) DEFAULT '1' COMMENT '休息中是否启用(0否1是)',
  `Enable` smallint(6) DEFAULT '1' COMMENT '是否启用(0否1是)',
  `CreatedById` char(36) DEFAULT NULL COMMENT '信息录入人员',
  `CreatedAt` datetime DEFAULT NULL COMMENT '信息录入时间',
  `UpdatedById` char(36) DEFAULT NULL COMMENT '信息最后修改人员',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '信息最后修改时间',
  `DeletedById` char(36) DEFAULT NULL COMMENT '信息删除人员',
  `DeletedAt` datetime DEFAULT NULL COMMENT '信息删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标识',
  PRIMARY KEY (`Id`),
  KEY `NON-UserCenterId` (`UserCenterId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-MessageType` (`MessageType`) USING BTREE,
  KEY `NON-RestingEnable` (`RestingEnable`) USING BTREE,
  KEY `NON-Enable` (`Enable`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='消息提醒配置表'

z_qianyi

{
  "message": "\u8868 z_qianyi \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `z_qianyi` (
  `table_name` varchar(200) NOT NULL,
  `table_comment` varchar(200) DEFAULT NULL,
  `rows` int(11) DEFAULT NULL,
  `remark` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

事务、沟通、会议任务工时明细

{
  "message": "\u8868 \u4e8b\u52a1\u3001\u6c9f\u901a\u3001\u4f1a\u8bae\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `事务、沟通、会议任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

common_propertymapping

{
  "columns": {
    "MappingPropertyCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_afcpaymentreport

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_persons20250304

{
  "message": "\u8868 tm_persons20250304 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250304` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tmp_tablename

{
  "message": "\u8868 tmp_tablename \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename` (
  `tablename` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

home_areageo

{
  "message": "\u8868 home_areageo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_areageo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `ALat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ALng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=3821 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_工单完成率地区经纬度'

basic_userroleinfo

{
  "indexes": {
    "NON-UserCenterId": {
      "message": "\u7d22\u5f15 NON-UserCenterId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-UserCenterId\nSELECT * FROM tb_whchangelog": {
      "message": "\u7d22\u5f15 NON-UserCenterId\nSELECT * FROM tb_whchangelog \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `basic_userroleinfo` DROP INDEX `NON-UserCenterId
SELECT * FROM tb_whchangelog`;

rp_chpworkorderdetail

{
  "message": "\u8868 rp_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_chpworkorderdetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `WorkOrderId` varchar(36) DEFAULT NULL COMMENT '工单ID',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编码',
  `OrderType` varchar(50) DEFAULT NULL,
  `SubjectNameSummary` varchar(100) DEFAULT NULL COMMENT '科目名称汇总',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `ProName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下单备注',
  `FirstConcatRole` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联人角色',
  `chpCarUserName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主姓名',
  `chpCarUserTel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '(CHP)车主电话',
  `chpCarVinNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车架号',
  `IsWithPile` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '带桩上门',
  `IsSelfBuiltHouse` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否自建房',
  `CarParkin` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车位',
  `ProtectionBox` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '保护箱',
  `InstallType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装方式',
  `GetElectricityType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电方式',
  `Schedule` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '立表进度',
  `ElectricityMetersType` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '电表类型',
  `PowerPointLocation` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '取电点位置',
  `WechatNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信号/群名',
  `chpWXAddProgress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主微信添加进度',
  `FirstContactRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首联备注',
  `WorkStatusName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CurrentPerson` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '当前处理人',
  `SubmmitTime` datetime DEFAULT NULL COMMENT '工单提交时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `chpNextFollowTime` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `LastAppointStatus` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '最新异常反馈类型',
  `LastFailAppointConcat` varchar(500) DEFAULT NULL COMMENT '最新异常反馈详情(取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间)',
  `AllFailAppointConcat` text COMMENT '异常反馈记录(按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间)',
  `SurveyTime` datetime DEFAULT NULL COMMENT '勘测完成时间',
  `CompleteTime` datetime DEFAULT NULL COMMENT '安装完成时间(安装)/施工完成时间(售后)',
  `ClosedAt` datetime DEFAULT NULL COMMENT '关闭时间',
  `AuditRejectRemark` text COMMENT '质检不通过备注(勘测、安装/售后)每次不通过的备注都放一起。',
  `AuditRejectNum` int(11) DEFAULT NULL COMMENT '质检驳回次数(勘测驳回+安装驳回/售后驳回的次数)',
  `LastAuditRejectTime` datetime DEFAULT NULL COMMENT '最新质检驳回时间',
  `AuditTime` datetime DEFAULT NULL COMMENT '(安装/售后)质检通过时间',
  `IsAddition` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否存在增项',
  `LastSurveyAuditCode` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人工号',
  `LastSurveyAuditName` varchar(50) DEFAULT NULL COMMENT '最新勘测质检人姓名',
  `LastInstallAuditCode` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人工号',
  `LastInstallAuditName` varchar(50) DEFAULT NULL COMMENT '最新(安装/售后)质检人姓名',
  `AdditionFeeSettleRoad` varchar(100) DEFAULT NULL COMMENT '增项结算路径',
  `AdditionFeePayTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '结算方式',
  `AdditionFeeChangeRemark` varchar(200) DEFAULT NULL COMMENT '增项结算修改原因',
  `AdditionFeeDetail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '增项明细',
  `AdditionFeePrice` decimal(18,5) DEFAULT NULL COMMENT '增项费(元)',
  `AdditionFeePaySource` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项付款方式',
  `AdditionFeeOfflinePayer` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '增项打款人',
  `AdditionFeePayTime` datetime DEFAULT NULL COMMENT '增项打款时间',
  `ServiceGoodsName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装服务商品',
  `ServiceGoodsPrice` decimal(18,5) DEFAULT NULL COMMENT '安装服务商品价格',
  `Power` decimal(18,1) DEFAULT NULL COMMENT '功率',
  `FirstPartySettleLength` varchar(50) DEFAULT NULL COMMENT '甲方结算套餐长度',
  `PackageLength` varchar(50) DEFAULT NULL COMMENT '车企套餐长度',
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '品牌',
  `chpBrandInfoURL` varchar(200) DEFAULT NULL COMMENT '品牌资料',
  `ProjectWarrantyPeriod` int(11) DEFAULT NULL COMMENT '工程质保期(年)',
  `SurveyName` varchar(45) DEFAULT NULL COMMENT '勘测人姓名',
  `Surveycode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测人账号',
  `InstallName` varchar(100) DEFAULT NULL COMMENT '安装人姓名(安装)/施工人姓名(售后)',
  `InstallCode` varchar(50) DEFAULT NULL COMMENT '安装人Code(安装)/施工人Code(售后)',
  `Distance` decimal(18,1) DEFAULT NULL COMMENT '单程服务距离(km)',
  `InstallAscription` varchar(50) DEFAULT NULL COMMENT '安装人员外勤属性(安装)/施工人属性(售后)',
  `FirstRecordTime` datetime DEFAULT NULL COMMENT '首次提交安装结果时间',
  `LastRecordTime` datetime DEFAULT NULL COMMENT '最新一次提交安装结果时间',
  `EmployeeAttributes` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装人员属性',
  `SurveyMethod` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测方式',
  `IndividualReason` varchar(200) DEFAULT NULL COMMENT '单独上门原因',
  `SurveyResult` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否继续安装',
  `ResultReason` varchar(200) DEFAULT NULL COMMENT '不安装原因',
  `SurveyRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '勘测施工备注',
  `Seller` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '充电桩销售方',
  `GoodsName` varchar(50) DEFAULT NULL COMMENT '桩商品',
  `MaterialPrice` decimal(18,5) DEFAULT NULL COMMENT '桩价格',
  `GoodsSource` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '桩来源',
  `MaterialNo` varchar(50) DEFAULT NULL COMMENT '中瑞桩编码',
  `MaterialType` varchar(50) DEFAULT NULL COMMENT '充电桩类型',
  `EscrowMaterialType` varchar(50) DEFAULT NULL COMMENT '代管桩物料',
  `EscrowMaterialNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '代管桩编码',
  `PileWarrantyPeriod` int(11) DEFAULT NULL COMMENT '电桩质保期(年)',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '充电桩出货仓库',
  `chpIsSelfWiring` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '车主是否自布线',
  `HardWire` text COMMENT '电缆硬线LM00008497(出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注)',
  `FlexibleCord` text COMMENT '电缆软线LM00008498',
  `Drivepipe` text COMMENT '套管LM00008502',
  `LeakageInsurance` text COMMENT '漏保LM00008500',
  `AirSwitchBox` text COMMENT '空开盒LM00008501',
  `ChargingPileColumn` text COMMENT '立柱LM00008499',
  `chpInstallRemark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '安装施工备注',
  `chpNextFollow` varchar(500) DEFAULT NULL COMMENT '安装后跟进记录',
  `CreatedAt` datetime DEFAULT NULL COMMENT '建单时间',
  `FirstConcatPersonCode` varchar(50) DEFAULT NULL COMMENT '首联人code',
  `FirstConcatPersonName` varchar(100) DEFAULT NULL COMMENT '首联人name',
  `FirstConcatTime` datetime DEFAULT NULL COMMENT '首联人时间',
  `ChpLineActualUsage` int(11) DEFAULT NULL COMMENT '线缆实际用量(电缆硬线+电缆软线实际用量)',
  `chpGoodsPackageSubsidyPrice` decimal(18,4) DEFAULT NULL COMMENT '充电桩补贴套餐价格)',
  `LastApplyReason` varchar(200) DEFAULT NULL COMMENT '最新异常反馈的申请原因',
  `chpCarModel` varchar(200) DEFAULT NULL COMMENT '车型(售后)',
  `chpProModel` varchar(200) DEFAULT NULL COMMENT '产品型号(售后)',
  `chpChargerNo` varchar(200) DEFAULT NULL COMMENT '桩编号(售后)',
  `chpOriginalInstallPerson` varchar(200) DEFAULT NULL COMMENT '原施工人(售后)',
  `chpFactoryBrand` varchar(200) DEFAULT NULL COMMENT '主机厂品牌(售后)',
  `chpProblemDescription` varchar(600) DEFAULT NULL COMMENT '问题描述(售后)',
  `chpFaulttime` varchar(200) DEFAULT NULL COMMENT '故障时间(售后)',
  `chpFaultClass` varchar(200) DEFAULT NULL COMMENT '故障分类(售后)',
  `chpSuggestedSolution` varchar(600) DEFAULT NULL COMMENT '建议解决方案(售后)',
  `chpWarrantyStatus` varchar(60) DEFAULT NULL COMMENT '保修状态(售后)',
  `chpActualSolutionName` varchar(1000) DEFAULT NULL COMMENT '实际处理方案(实际处理方案为其它时展示详细处理信息)(售后)',
  `chpIfCharge` varchar(60) DEFAULT NULL COMMENT '是否收费(售后)',
  `chpAfterSaleRemark` varchar(600) DEFAULT NULL COMMENT '施工备注(售后)',
  `chpLogisticsNum` varchar(100) DEFAULT NULL COMMENT '物流单号(售后)',
  `chpShippingWarehouse` varchar(200) DEFAULT NULL COMMENT '出货仓库(售后)',
  `chpWarehouseMaterials` text COMMENT '所用物料(拼接)(售后)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  `chpMaterialSN` varchar(100) DEFAULT NULL COMMENT '故障物料SN',
  `chpWorkerSettlePrice` varchar(50) DEFAULT NULL COMMENT '优工结算价(总价)',
  `chpWorkerSettlementMethod` varchar(50) DEFAULT NULL COMMENT '客户结算价',
  `chpWorkerFeeRemark` varchar(500) DEFAULT NULL COMMENT '备注-操作人/操作时间',
  `chpInstallConditionDate` date DEFAULT NULL COMMENT '具备安装条件日期',
  `chpPileInventoryResults` varchar(50) DEFAULT NULL COMMENT '桩盘点结果',
  `chpColumnInventoryResults` varchar(50) DEFAULT NULL COMMENT '立柱盘点结果',
  `AdditionFeeCommissionRatio` varchar(50) DEFAULT NULL COMMENT '增项费分佣比例(%)',
  `AllSubsidy` decimal(20,2) DEFAULT NULL COMMENT '总费用',
  `InstallPriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-安装',
  `AfterSalePriPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '私桩计件-售后',
  `ChargingPileSubsidy` decimal(20,2) DEFAULT NULL COMMENT '公桩计件(申请)',
  `LeakageInsuranceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '漏保补贴',
  `GalvanizedPipeSubsidy` decimal(20,2) DEFAULT NULL COMMENT '镀锌管补贴',
  `AdditionSubsidy` decimal(20,2) DEFAULT NULL COMMENT '增项',
  `LineSubsidy` decimal(20,2) DEFAULT NULL COMMENT '电缆补贴',
  `RemoteSubsidy` decimal(20,2) DEFAULT NULL COMMENT '远补',
  `CarSubsidy` decimal(20,2) DEFAULT NULL COMMENT '用车补贴',
  `BonusSubsidy` decimal(20,2) DEFAULT NULL COMMENT '奖金',
  `DifferenceSubsidy` decimal(20,2) DEFAULT NULL COMMENT '差异补发',
  `ComplaintDeduction` decimal(20,2) DEFAULT NULL COMMENT '客诉扣款',
  `DifferenceDeduction` decimal(20,2) DEFAULT NULL COMMENT '差异扣除',
  `chpPilesNum` int(11) DEFAULT NULL COMMENT '(充电桩)桩数量',
  `chpGunsNum` int(11) DEFAULT NULL COMMENT '(充电桩)枪数量',
  `chpParkSpaceNum` int(11) DEFAULT NULL COMMENT '(充电桩)车位数量',
  `DispatchTime` datetime DEFAULT NULL COMMENT '勘测调度完成时间/调度完成时间',
  `CustomerAuditApprovalTime` datetime DEFAULT NULL COMMENT '客户审核通过时间',
  `chpOrderSource` varchar(50) DEFAULT NULL COMMENT '(充电桩)订单来源',
  `CurrentPersonCode` varchar(50) DEFAULT NULL COMMENT '当前处理人编号',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-CreatedAt` (`CreatedAt` DESC)
) ENGINE=InnoDB AUTO_INCREMENT=19432 DEFAULT CHARSET=utf8 COMMENT='充电桩已完成工单明细表'

tm_persons2

{
  "message": "\u8868 tm_persons2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons2` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tmp_userclockininfo

{
  "message": "\u8868 tmp_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL,
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工打卡设置信息表'

vi_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimerelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowhandlingstatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

de_testuser20240327101659637

{
  "message": "\u8868 de_testuser20240327101659637 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser20240327101659637` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

tb_workfeeitem

{
  "indexes": {
    "NON-FeePurpose": {
      "message": "\u7d22\u5f15 NON-FeePurpose \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workflowjsoninfo

{
  "columns": {
    "SourceMode": {
      "default": {
        "source": "1",
        "target": null
      }
    },
    "v_LastAddRecordTime": {
      "message": "\u5217 v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_LastAddRecordTime": {
      "message": "\u7d22\u5f15 NON-v_LastAddRecordTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_delorderid

{
  "columns": {
    "remark": {
      "message": "\u5217 remark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodestepconditions_bak

{
  "message": "\u8868 workflownodestepconditions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodestepconditions_bak`;

rp_afcworkorderdetail

{
  "columns": {
    "AccommodateSign": {
      "message": "\u5217 AccommodateSign \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AdjustReimbursableDistance": {
      "type": {
        "source": "decimal(18,2)",
        "target": "varchar(500)"
      }
    },
    "AuditStatus": {
      "message": "\u5217 AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeRemark": {
      "message": "\u5217 FeeRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FindWho": {
      "message": "\u5217 FindWho \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OverdueGrade": {
      "message": "\u5217 OverdueGrade \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnCountReward": {
      "message": "\u5217 ReturnCountReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnPriceReward": {
      "message": "\u5217 ReturnPriceReward \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondLinkMan": {
      "message": "\u5217 SecondLinkMan \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SecondVisitStatus": {
      "message": "\u5217 SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "NON-WorkOrderId": {
      "message": "\u7ea6\u675f NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderinvoicelog

{
  "message": "\u8868 tb_workorderinvoicelog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinvoicelog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID',
  `ApplyPhone` varchar(50) DEFAULT NULL COMMENT '申请电话号码',
  `Result` int(11) DEFAULT NULL COMMENT '申请结果(0-申请中,1-申请成功,2-申请失败)',
  `Remark` varchar(200) DEFAULT NULL COMMENT '申请结果备注',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '申请操作人ID',
  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  `Deleted` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-Result` (`Result`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1526 DEFAULT CHARSET=utf8 COMMENT='工单发票申请日志表'

vi_workorderinfo_mobile

{
  "message": "\u8868 vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

workflownoderelatedactors_bak

{
  "message": "\u8868 workflownoderelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownoderelatedactors_bak`;

serviceinfodetail

{
  "message": "\u8868 serviceinfodetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfodetail` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

阶段目标生产达成

{
  "message": "\u8868 \u9636\u6bb5\u76ee\u6807\u751f\u4ea7\u8fbe\u6210 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `阶段目标生产达成` (
  `研发生产目标模板-产品迭代优化/集成项目/客制化项目` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `阶段基线` varchar(255) DEFAULT NULL,
  `工时
(人天)` varchar(255) DEFAULT NULL,
  `交期
(YY-MM-DD)` varchar(255) DEFAULT NULL,
  `范围
(PRD版本/架构优化)` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_vhsworkorderinfo

{
  "indexes": {
    "NON-CreatedAt": {
      "message": "\u7d22\u5f15 NON-CreatedAt \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

testuser

{
  "columns": {
    "Id": {
      "extra": {
        "source": "auto_increment",
        "target": ""
      },
      "nullable": {
        "source": false,
        "target": true
      }
    }
  },
  "indexes": {
    "PRIMARY": {
      "message": "\u7d22\u5f15 PRIMARY \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "idx_testuser_lookup": {
      "message": "\u7d22\u5f15 idx_testuser_lookup \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `testuser` DROP INDEX `idx_testuser_lookup`;

工作簿2

{
  "message": "\u8868 \u5de5\u4f5c\u7c3f2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `工作簿2` (
  `产品线` text,
  `一级组织` text,
  `二级组织` text,
  `三级组织` text,
  `项目名称` text,
  `版本号` text,
  `优先级别` text,
  `严重级别` text,
  `发生时间` text,
  `是否为客户投诉` text,
  `问题类型` text,
  `问题大类` text,
  `问题小类` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

check_workflowjsoninfo

{
  "message": "\u8868 check_workflowjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsoninfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `CheckType` smallint(6) DEFAULT NULL COMMENT '问题原因',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '验证日期',
  `CorrectStatus` smallint(6) DEFAULT NULL COMMENT '更正状态',
  `UnCorrectJson` json DEFAULT NULL COMMENT '历史错误Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-CheckDate` (`CheckDate`) USING BTREE,
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-CheckType` (`CheckType`) USING BTREE,
  KEY `NON-CorrectStatus` (`CorrectStatus`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8612340 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=74 ROW_FORMAT=DYNAMIC COMMENT='工单工作流数据验证日志表'

workflownodecommentactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

workflowrelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

slow911

{
  "message": "\u8868 slow911 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow911` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_afcworkorderinfo

{
  "columns": {
    "AdjustReimReturnDistance": {
      "message": "\u5217 AdjustReimReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "CustomerBriefName": {
      "message": "\u5217 CustomerBriefName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OptimalReturnDistance": {
      "message": "\u5217 OptimalReturnDistance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_formlastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

vi_workorderrecheckdetailforexport

{
  "message": "\u8868 vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

tb_chpworkorderinfo

{
  "columns": {
    "Distance": {
      "type": {
        "source": "decimal(18,1)",
        "target": "varchar(255)"
      }
    },
    "LastAuditRejectRemark": {
      "message": "\u5217 LastAuditRejectRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastUpdateTimeStamp": {
      "message": "\u5217 LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-LastUpdateTimeStamp": {
      "message": "\u7d22\u5f15 NON-LastUpdateTimeStamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

move_hisworkorderinfo

{
  "message": "\u8868 move_hisworkorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `move_hisworkorderinfo`;

tb_phoneorderrelation

{
  "message": "\u8868 tb_phoneorderrelation \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_phoneorderrelation` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机信息表ID(tb_userworkphoneinfo.Id)',
  `WorkOrderId` varchar(12) DEFAULT NULL COMMENT '工单ID(tb_workorderinfo.Id)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '工单编号',
  `CustomerId` varchar(100) DEFAULT NULL COMMENT '工单客户ID',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '工单客户名称',
  `NegotiatorId` varchar(12) DEFAULT NULL COMMENT '谈判记录ID(tb_afcnegotiationrecordinfo.Id)',
  `NegotiatorTime` datetime DEFAULT NULL COMMENT '谈判记录生成时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NegotiatorId` (`NegotiatorId`),
  KEY `NegotiatorTime` (`NegotiatorTime`),
  KEY `PhoneInfoId` (`PhoneInfoId`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=2933 DEFAULT CHARSET=utf8 COMMENT='工作手机与工单关系表(匹配结果表)'

rp_vhsworkorderinfodetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodes

{
  "columns": {
    "DataDictionaryId": {
      "type": {
        "source": "varchar(36)",
        "target": "char(36)"
      }
    },
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

basic_accessoryresource

{
  "columns": {
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

basic_subjectclass

{
  "message": "\u8868 basic_subjectclass \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `basic_subjectclass` (
  `Id` char(12) NOT NULL COMMENT '主键(SS)',
  `TenantId` char(12) DEFAULT NULL COMMENT '租户Id',
  `ClassCode` varchar(50) DEFAULT NULL COMMENT '科目编码',
  `ClassName` varchar(100) DEFAULT NULL COMMENT '科目名称',
  `CreatedById` varchar(36) DEFAULT NULL COMMENT '创建人Id',
  `CreatedAt` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  `UpdatedById` varchar(36) DEFAULT NULL COMMENT '更新人Id',
  `UpdatedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '更新时间',
  `DeletedById` varchar(36) DEFAULT NULL COMMENT '删除人',
  `DeletedAt` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '删除时间',
  `Deleted` tinyint(4) DEFAULT '0' COMMENT '是否删除(0否1是)',
  PRIMARY KEY (`Id`),
  KEY `NON-ClassCode` (`ClassCode`),
  KEY `NON-TenantId` (`TenantId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础信息域_服务科目分类'

tm_workresourceinfo_20210705a

{
  "message": "\u8868 tm_workresourceinfo_20210705a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705a`;

workflowrelatedactors_bak

{
  "message": "\u8868 workflowrelatedactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowrelatedactors_bak`;

tmp_chprporderid

{
  "message": "\u8868 tmp_chprporderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprporderid` (
  `WorkOrderId` varchar(12) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`WorkOrderId`),
  KEY `WorkStatus` (`WorkStatus`) USING BTREE,
  KEY `Result` (`Result`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩明细表导出工单ID及批次(即用即删)_长期表'

vi_workorderacceptinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workresourceinfo

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

flink_sinka

{
  "message": "\u8868 flink_sinka \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_sinka`;

tmp_districtyx1

{
  "message": "\u8868 tmp_districtyx1 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx1` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `省编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

flink_tableb

{
  "message": "\u8868 flink_tableb \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tableb`;

tb_feeiteminfo

{
  "indexes": {
    "GenerationMode": {
      "message": "\u7d22\u5f15 GenerationMode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_ordercount

{
  "message": "\u8868 home_ordercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `FinishedCnt` int(11) NOT NULL DEFAULT '0' COMMENT '完单量',
  `FinishedRate` int(11) DEFAULT NULL COMMENT '完单率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=20649 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_单据信息'

tb_custcolumn

{
  "indexes": {
    "NON-Value": {
      "message": "\u7d22\u5f15 NON-Value \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimereminderlogs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_csgroup

{
  "message": "\u8868 tmp_csgroup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_csgroup` (
  `code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

slow1114

{
  "message": "\u8868 slow1114 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1114` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

serviceinfo

{
  "message": "\u8868 serviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `serviceinfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8

tb_workbussinessjsoninfo

{
  "columns": {
    "LastUpdateTimeStamp": {
      "default": {
        "source": "CURRENT_TIMESTAMP",
        "target": "CURRENT_TIMESTAMP(3)"
      },
      "extra": {
        "source": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP",
        "target": "DEFAULT_GENERATED on update CURRENT_TIMESTAMP(3)"
      },
      "type": {
        "source": "timestamp",
        "target": "timestamp(3)"
      }
    },
    "v_CustomerAuditStatus": {
      "message": "\u5217 v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_chpCarModel": {
      "message": "\u5217 v_chpCarModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_need_reinstall": {
      "message": "\u5217 v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireDeviceModel": {
      "message": "\u5217 v_tireDeviceModel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInflationPosition": {
      "message": "\u5217 v_tireInflationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInspectedVehicleCount": {
      "message": "\u5217 v_tireInspectedVehicleCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireInstallationMethod": {
      "message": "\u5217 v_tireInstallationMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIsSupplementaryOrder": {
      "message": "\u5217 v_tireIsSupplementaryOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireIssueSummary": {
      "message": "\u5217 v_tireIssueSummary \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNeedOuterTireRemoval": {
      "message": "\u5217 v_tireNeedOuterTireRemoval \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireNumber": {
      "message": "\u5217 v_tireNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePlateNumber": {
      "message": "\u5217 v_tirePlateNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePosition": {
      "message": "\u5217 v_tirePosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeReason": {
      "message": "\u5217 v_tirePositionChangeReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePositionChangeSuggestion": {
      "message": "\u5217 v_tirePositionChangeSuggestion \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tirePressure": {
      "message": "\u5217 v_tirePressure \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalCount": {
      "message": "\u5217 v_tireRemovalCount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalInstallationPosition": {
      "message": "\u5217 v_tireRemovalInstallationPosition \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRemovalReason": {
      "message": "\u5217 v_tireRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeId": {
      "message": "\u5217 v_tireRepairTypeId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireRepairTypeName": {
      "message": "\u5217 v_tireRepairTypeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementReason": {
      "message": "\u5217 v_tireReplacementReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_tireReplacementRemovalReason": {
      "message": "\u5217 v_tireReplacementRemovalReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "constraints": {
    "UNI-WORKORDERID": {
      "message": "\u7ea6\u675f UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "NON-DynIsHelpers": {
      "message": "\u7d22\u5f15 NON-DynIsHelpers \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-DynVinNumber": {
      "message": "\u7d22\u5f15 NON-DynVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-chpOrderCompleteTime": {
      "message": "\u7d22\u5f15 NON-chpOrderCompleteTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CompleteAging": {
      "message": "\u7d22\u5f15 NON-v_CompleteAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_CustomerAuditStatus": {
      "message": "\u7d22\u5f15 NON-v_CustomerAuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OrderRelationId": {
      "message": "\u7d22\u5f15 NON-v_OrderRelationId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_OutCardDate": {
      "message": "\u7d22\u5f15 NON-v_OutCardDate \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 NON-v_PostFillWorkOrder \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotAging": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotAging \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_RescScreenshotResult": {
      "message": "\u7d22\u5f15 NON-v_RescScreenshotResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitStatus": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_SecondVisitTime": {
      "message": "\u7d22\u5f15 NON-v_SecondVisitTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpActualSolutionCode": {
      "message": "\u7d22\u5f15 NON-v_chpActualSolutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarVinNumber": {
      "message": "\u7d22\u5f15 NON-v_chpCarVinNumber \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpElectricityMetersType": {
      "message": "\u7d22\u5f15 NON-v_chpElectricityMetersType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpFactoryBrand": {
      "message": "\u7d22\u5f15 NON-v_chpFactoryBrand \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpNextFollowTime": {
      "message": "\u7d22\u5f15 NON-v_chpNextFollowTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpSurveyInstallType": {
      "message": "\u7d22\u5f15 NON-v_chpSurveyInstallType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_need_reinstall": {
      "message": "\u7d22\u5f15 NON-v_need_reinstall \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UNI-WORKORDERID": {
      "message": "\u7d22\u5f15 UNI-WORKORDERID \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_OrderColor": {
      "message": "\u7d22\u5f15 v_OrderColor \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_PostFillWorkOrder": {
      "message": "\u7d22\u5f15 v_PostFillWorkOrder \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "v_afcAuditPassTime": {
      "message": "\u7d22\u5f15 v_afcAuditPassTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `UNI-WORKORDERID`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP INDEX `v_PostFillWorkOrder`;
ALTER TABLE `tb_workbussinessjsoninfo` DROP CONSTRAINT `UNI-WORKORDERID`;

tb_afcsecondvisitinfo

{
  "message": "\u8868 tb_afcsecondvisitinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcsecondvisitinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(SV)',
  `WorkOrderId` varchar(20) DEFAULT NULL COMMENT '工单ID',
  `InitiatorCode` varchar(50) DEFAULT NULL COMMENT '发起人Code',
  `InitiatorName` varchar(100) DEFAULT NULL COMMENT '发起人Name',
  `InitiateTime` datetime DEFAULT NULL COMMENT '发起时间',
  `InitiateRemark` varchar(2000) DEFAULT NULL COMMENT '发起原因',
  `SubmitType` smallint(6) DEFAULT NULL COMMENT '二访保存状态(0保存,1提交)',
  `SubmitterCode` varchar(50) DEFAULT NULL COMMENT '提交人Code',
  `SubmitterName` varchar(100) DEFAULT NULL COMMENT '提交人Name',
  `SubmitStatus` smallint(6) DEFAULT '0' COMMENT '确认二访(0-无操作,1-确认,2-拒绝)',
  `SubmitTime` datetime DEFAULT NULL COMMENT '提交时间',
  `SubmitRemark` varchar(2000) DEFAULT NULL COMMENT '提交备注',
  `RejectReason` varchar(2000) DEFAULT NULL COMMENT '拒绝原因',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融二访信息'

tb_workcarinfo

{
  "indexes": {
    "NON-PlateColor": {
      "message": "\u7d22\u5f15 NON-PlateColor \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workcarinfo` DROP INDEX `NON-PlateColor`;

tb_afcnegotiationrecordinfo

{
  "columns": {
    "ConnectChannel": {
      "message": "\u5217 ConnectChannel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserName": {
      "message": "\u5217 UserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "UserTel": {
      "message": "\u5217 UserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "VisitorTel": {
      "message": "\u5217 VisitorTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxCode": {
      "message": "\u5217 WxCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WxRemark": {
      "message": "\u5217 WxRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_aes_encrypt

{
  "message": "\u8868 tmp_aes_encrypt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_aes_encrypt` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `NUM` varbinary(100) DEFAULT NULL,
  `num1` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

tb_workresourceinfo

{
  "columns": {
    "ComparisonResults": {
      "message": "\u5217 ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ImageAddressUrl": {
      "message": "\u5217 ImageAddressUrl \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceCode": {
      "message": "\u5217 ResourceCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ComparisonResults": {
      "message": "\u7d22\u5f15 NON-ComparisonResults \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_vhsworkorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverLoginName": {
      "message": "\u5217 ReceiverLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserId": {
      "message": "\u5217 ReceiverUserId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiverUserName": {
      "message": "\u5217 ReceiverUserName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_workimp

{
  "message": "\u8868 tmp_workimp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp` (
  `ordertype` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `classname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `appcode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `custname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `storename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `settlename` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `brandname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `proname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `cityname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `areaname` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusername` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `carusertel` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `installperson` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL COMMENT '工单提交时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tm_appcode

{
  "message": "\u8868 tm_appcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_appcode` (
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`appcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=36 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

workflownodeactors_bak

{
  "message": "\u8868 workflownodeactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactors_bak`;

workflowcompleteactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_appointment

{
  "columns": {
    "Deleted": {
      "nullable": {
        "source": false,
        "target": true
      }
    }
  }
}

tm_workorder20250314

{
  "message": "\u8868 tm_workorder20250314 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_workorder20250314` (
  `工单编号` varchar(255) DEFAULT NULL,
  `省` varchar(255) DEFAULT NULL,
  `市` varchar(255) DEFAULT NULL,
  `区` varchar(255) DEFAULT NULL,
  `详细地址` varchar(255) DEFAULT NULL,
  `服务科目` varchar(255) DEFAULT NULL,
  `施工人(账号)` varchar(255) DEFAULT NULL,
  `施工人(姓名)` varchar(255) DEFAULT NULL,
  `电话` varchar(255) DEFAULT NULL,
  `工单提交时间` varchar(255) DEFAULT NULL,
  `施工完成时间` varchar(255) DEFAULT NULL,
  `工单状态` varchar(255) DEFAULT NULL,
  `服务商` varchar(255) DEFAULT NULL,
  `报表月份` varchar(255) DEFAULT NULL,
  `公司` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflownodeactions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_wxuserinfo

{
  "message": "\u8868 tb_wxuserinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_wxuserinfo` (
  `WxId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键(WxId,安米无微信ID,数据同微信号)',
  `DataSource` smallint(6) NOT NULL DEFAULT '0' COMMENT '来源(1-云客,2-安米)',
  `WxCode` varchar(50) DEFAULT NULL COMMENT '微信号',
  `WxName` varchar(50) DEFAULT NULL COMMENT '微信昵称',
  `WxHead` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '微信头像URL',
  `WxNameRemark` varchar(100) DEFAULT NULL COMMENT '微信备注名',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserType` smallint(6) DEFAULT NULL COMMENT '类型(1-员工,2-客户(员工好友),3-群,4-群成员)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`WxId`,`DataSource`),
  KEY `UserType` (`UserType`),
  KEY `LoginName` (`LoginName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员微信信息表'

tmp_zhusuwei

{
  "message": "\u8868 tmp_zhusuwei \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_zhusuwei` (
  `省份` varchar(255) DEFAULT NULL,
  `父级` varchar(255) DEFAULT NULL,
  `城市` varchar(255) DEFAULT NULL,
  `汇总的` varchar(255) DEFAULT NULL,
  `城市等级` varchar(255) DEFAULT NULL,
  `职等信息` varchar(255) DEFAULT NULL,
  `金额` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

basic_ordersearchproperty

{
  "columns": {
    "DataSourceJson": {
      "message": "\u5217 DataSourceJson \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "DataSourceJsons": {
      "message": "\u5217 DataSourceJsons \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Deleted": {
      "nullable": {
        "source": true,
        "target": false
      }
    }
  }
}

变更SQL:

ALTER TABLE `basic_ordersearchproperty` DROP COLUMN `DataSourceJson`;

tb_prepaymentorderinfo

{
  "message": "\u8868 tb_prepaymentorderinfo \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tb_prepaymentorderinfo`;

tm_workresourceinfo_20210705

{
  "message": "\u8868 tm_workresourceinfo_20210705 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_workresourceinfo_20210705`;

basic_resourceitem

{
  "columns": {
    "FileSource": {
      "message": "\u5217 FileSource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workfixgoodsdetail

{
  "columns": {
    "IsLoss": {
      "message": "\u5217 IsLoss \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workfeeinfo

{
  "columns": {
    "IsAddition": {
      "message": "\u5217 IsAddition \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "PrePaymentOrderNo": {
      "message": "\u7d22\u5f15 PrePaymentOrderNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

变更SQL:

ALTER TABLE `tb_workfeeinfo` DROP COLUMN `IsAddition`;

home_worktimetrend

{
  "message": "\u8868 home_worktimetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_worktimetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `WorkHour` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工作时间段',
  `WorkDayCnt` int(11) NOT NULL DEFAULT '0' COMMENT '工作日完成数量',
  `WeekendCnt` int(11) NOT NULL DEFAULT '0' COMMENT '非工作日完成数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkHour` (`WorkHour`),
  KEY `NON_ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_近1周作业结束时间段分布'

de_xichashiti20220523150128431

{
  "message": "\u8868 de_xichashiti20220523150128431 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_xichashiti20220523150128431` (
  `Id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `x1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'dataText',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='喜茶实体'

vi_workorderrecheckdetail

{
  "message": "\u8868 vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

common_ruleactionlog

{
  "message": "\u8868 common_ruleactionlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `common_ruleactionlog` (
  `Id` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键ID(AL)',
  `TargetId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '业务Id(tb_workorderinfo.Id)',
  `InputParams` json DEFAULT NULL COMMENT '输入参数json',
  `OutParams` json DEFAULT NULL COMMENT '输出参数json',
  `SubRuleCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则编码(common_subruleinfo.SubRuleCode)',
  `SubRuleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '子规则名称(common_subruleinfo.SubRuleName)',
  `RuleTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '规则类别编码(basic_datadictionary.code)',
  `VersionIndex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本',
  `IsMatching` int(11) DEFAULT NULL COMMENT '是否匹配(1是 0否)',
  `ExceptionInfo` varchar(200) DEFAULT NULL COMMENT '异常信息',
  `MatchRulesJson` json DEFAULT NULL COMMENT '匹配条件Json',
  `ActionsJson` json DEFAULT NULL COMMENT '执行动作Json',
  `RuleMessageJson` json DEFAULT NULL COMMENT '规则报文json',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商Code',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-OrgCode` (`OrgCode`) USING BTREE,
  KEY `NON-TargetId` (`TargetId`) USING BTREE,
  KEY `NON-RuleTypeCode` (`RuleTypeCode`) USING BTREE,
  KEY `NON-SubRuleCode` (`SubRuleCode`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_规则操作日志表'

tmp_chpfixorder

{
  "message": "\u8868 tmp_chpfixorder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpfixorder` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderTypeName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SubjectName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `StoreName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SettleName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderRemark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CarUserTel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OrderCompleteTime` datetime DEFAULT NULL,
  `StoreCode` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `RecordPersonName` (`RecordPersonName`) USING BTREE,
  KEY `NON-OrderTypeName` (`OrderTypeName`) USING BTREE,
  KEY `ProName` (`ProName`) USING BTREE,
  KEY `StoreName` (`StoreName`) USING BTREE,
  KEY `SubjectName` (`SubjectName`) USING BTREE,
  KEY `CityName` (`CityName`) USING BTREE,
  KEY `CustomerId` (`CustomerId`) USING BTREE,
  KEY `AppCode` (`AppCode`) USING BTREE,
  KEY `AreaName` (`AreaName`) USING BTREE,
  KEY `SubjectCode` (`SubjectCode`) USING BTREE,
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `CustomerName` (`CustomerName`) USING BTREE,
  KEY `SettleName` (`SettleName`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=864 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='20231010\r\n导入充电桩私桩巡检虚拟数据864单'

basic_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_customerinfoformove20210927

{
  "message": "\u8868 tm_customerinfoformove20210927 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_customerinfoformove20210927`;

vvi_workorderauditinfoforafc

{
  "message": "\u8868 vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

counter

{
  "message": "\u8868 counter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `counter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Counter_Key` (`Key`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

workflowcompleterelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

changhe

{
  "message": "\u8868 changhe \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `changhe` (
  `结算单位` varchar(255) DEFAULT NULL,
  `结算属性` varchar(255) DEFAULT NULL,
  `商品名称` varchar(255) DEFAULT NULL,
  `类型` varchar(255) DEFAULT NULL,
  `商品属性` varchar(255) DEFAULT NULL,
  `下单方式` varchar(255) DEFAULT NULL,
  `是否关联保险` varchar(255) DEFAULT NULL,
  `商品价格` varchar(255) DEFAULT NULL,
  `建立时间` varchar(255) DEFAULT NULL,
  `下架时间` varchar(255) DEFAULT NULL,
  `产品名称` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_workgoodsdetail

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

aggregatedcounter

{
  "message": "\u8868 aggregatedcounter \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `aggregatedcounter` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `Value` int(11) NOT NULL,
  `ExpireAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_CounterAggregated_Key` (`Key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

test_encryption

{
  "message": "\u8868 test_encryption \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_encryption` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) DEFAULT NULL,
  `Data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8

vi_vhsworkedorderinfo

{
  "columns": {
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowruntimeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflownodecommentactors_bak

{
  "message": "\u8868 workflownodecommentactors_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodecommentactors_bak`;

vi_workorderlistforchp_audit

{
  "message": "\u8868 vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

home_ordertotalcnt

{
  "message": "\u8868 home_ordertotalcnt \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordertotalcnt` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CntType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数量类型(1下单量2完成量3关闭量4质检量5服务客数量6服务施工人数)',
  `CntNum` int(11) NOT NULL DEFAULT '0' COMMENT '总量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CntType` (`CntType`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_业务累计服务信息'

vi_tireworkorderinfo

{
  "message": "\u8868 vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

basic_orgroleinfo

{
  "columns": {
    "ApiPermission": {
      "message": "\u5217 ApiPermission \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_chpworkorderdetail_test

{
  "message": "\u8868 vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

tmp_canaltest2

{
  "message": "\u8868 tmp_canaltest2 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest2`;

tmp_districtyx3

{
  "message": "\u8868 tmp_districtyx3 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx3` (
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

teststruct

{
  "message": "\u8868 teststruct \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `teststruct` (
  `TABLE_CATALOG` text,
  `TABLE_SCHEMA` text,
  `TABLE_NAME` text,
  `COLUMN_NAME` text,
  `ORDINAL_POSITION` int(11) DEFAULT NULL,
  `COLUMN_DEFAULT` int(11) DEFAULT NULL,
  `IS_NULLABLE` text,
  `DATA_TYPE` text,
  `CHARACTER_MAXIMUM_LENGTH` double DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` double DEFAULT NULL,
  `NUMERIC_PRECISION` int(11) DEFAULT NULL,
  `NUMERIC_SCALE` int(11) DEFAULT NULL,
  `DATETIME_PRECISION` int(11) DEFAULT NULL,
  `CHARACTER_SET_NAME` text,
  `COLLATION_NAME` text,
  `COLUMN_TYPE` text,
  `COLUMN_KEY` text,
  `EXTRA` text,
  `PRIVILEGES` text,
  `COLUMN_COMMENT` text,
  `GENERATION_EXPRESSION` text,
  `SRS_ID` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowruntimeattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_ordercreatetrend

{
  "message": "\u8868 home_ordercreatetrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercreatetrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckYear` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表年份',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_CheckYear` (`CheckYear`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=1832 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_下单量趋势'

home_timeduration

{
  "message": "\u8868 home_timeduration \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_timeduration` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DispatchDuration` int(11) NOT NULL DEFAULT '0' COMMENT '调度时长(小时)',
  `ServiceDuration` int(11) NOT NULL DEFAULT '0' COMMENT '总服务时长(小时)',
  `AuditDuration` int(11) NOT NULL DEFAULT '0' COMMENT '质检响应时长(小时)',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=2017 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_时效信息'

vi_chpworkorderdetail

{
  "message": "\u8868 vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

tm_persons20250121

{
  "message": "\u8868 tm_persons20250121 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250121` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tmp_districtyx2

{
  "message": "\u8868 tmp_districtyx2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx2` (
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `市编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_invoiceinfo

{
  "columns": {
    "Company": {
      "message": "\u5217 Company \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "Conpany": {
      "message": "\u5217 Conpany \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    },
    "MainId": {
      "message": "\u5217 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "MainId": {
      "message": "\u7d22\u5f15 MainId \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `tb_invoiceinfo` DROP COLUMN `Conpany`;
ALTER TABLE `tb_invoiceinfo` DROP COLUMN `MainId`;
ALTER TABLE `tb_invoiceinfo` DROP INDEX `MainId`;

de_testuser

{
  "message": "\u8868 de_testuser \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_testuser` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试人员'

vi_userinfo

{
  "columns": {
    "UserStatus": {
      "type": {
        "source": "smallint(6)",
        "target": "smallint(1)"
      }
    }
  }
}

tb_workgoodsinfo

{
  "columns": {
    "ExtraJson": {
      "message": "\u5217 ExtraJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallFailReason": {
      "message": "\u5217 InstallFailReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "InstallResult": {
      "message": "\u5217 InstallResult \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_ChargerType": {
      "message": "\u5217 v_ChargerType \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_Power": {
      "message": "\u5217 v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-v_Power": {
      "message": "\u7d22\u5f15 NON-v_Power \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-v_chpCarUserTel": {
      "message": "\u7d22\u5f15 NON-v_chpCarUserTel \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_completerate

{
  "message": "\u8868 home_completerate \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_completerate` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `7CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '7日内完成单量',
  `15CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '15日内完成单量',
  `30CompCnt` int(11) NOT NULL DEFAULT '0' COMMENT '30日内完成单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_工单完成率'

workjsoninfo

{
  "message": "\u8868 workjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `workjsoninfo` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustStoreCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PreCustStoreName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustSettleName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsCustomer` tinyint(1) DEFAULT NULL,
  `CustCoopType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CityName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaCode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AreaName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallAddress` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InstallTime` datetime DEFAULT NULL,
  `RequiredTime` datetime DEFAULT NULL,
  `LinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SourceType` smallint(6) DEFAULT NULL,
  `SecondLinkTel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `SecondLinkMan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WarehouseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `IsUrgent` tinyint(1) DEFAULT NULL,
  `CustUniqueSign` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatePersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveTime` datetime DEFAULT NULL,
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EffectiveSuccessfulTime` datetime DEFAULT NULL,
  `CreatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) DEFAULT NULL,
  `AppointStatus` smallint(6) DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CreateType` smallint(6) DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecCompleteTime` datetime DEFAULT NULL,
  `RecRecordPersonCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RecRecordPersonName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfOrderCompletetime` datetime DEFAULT NULL,
  `WfAssignor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WfDirectOrderAccept` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrTypeStatus` smallint(6) DEFAULT NULL,
  `WorkOdrCloseStatusName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkOdrSuspendStatus` smallint(6) DEFAULT NULL,
  `WorkStatus` smallint(6) DEFAULT NULL,
  `WorkOdrClosedAt` datetime DEFAULT NULL,
  `AFCCreatedAt` datetime DEFAULT NULL,
  `AFCRetreatTime` datetime DEFAULT NULL,
  `AFCFollowFrequency` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AFCIfRemove` smallint(6) DEFAULT NULL,
  `AFCReturnedTypeCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `VHSAppraisalStatus` smallint(6) DEFAULT NULL,
  `VHSReceiverLoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OperatingInfo` json DEFAULT NULL,
  `OperatedInfo` json DEFAULT NULL,
  `ServiceProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkflowInfo` json DEFAULT NULL,
  `WorkServiceSubject` json DEFAULT NULL,
  `AFCWorkFinanceRecord` json DEFAULT NULL,
  `AFCPaymentReport` json DEFAULT NULL,
  `VHSWorkFileReceiveInfo` json DEFAULT NULL,
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkAddressInfo` json DEFAULT NULL,
  `AFCLastNegotiatorTime` datetime DEFAULT NULL,
  `AFCFollowFrequencyType` smallint(6) DEFAULT NULL,
  `AFCCompleteType` smallint(6) DEFAULT NULL,
  `AFCReportDeadline` datetime DEFAULT NULL,
  `AFCUnFollowDays` bigint(20) DEFAULT NULL,
  `AFCAppointTime` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=2416 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=2684 ROW_FORMAT=DYNAMIC

basic_district_bak_a

{
  "message": "\u8868 basic_district_bak_a \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_district_bak_a`;

tm_meigui

{
  "message": "\u8868 tm_meigui \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_meigui`;

home_ordercusttop

{
  "message": "\u8868 home_ordercusttop \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttop` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `TotalCnt` int(11) DEFAULT NULL COMMENT '总单量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_累计下单客户TOP10'

home_ordercusttrend

{
  "message": "\u8868 home_ordercusttrend \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_ordercusttrend` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `CreateCnt` int(11) NOT NULL DEFAULT '0' COMMENT '建单量',
  `CheckMonth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表月份',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-CheckMonth` (`CheckMonth`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_TOP3客户下单量趋势'

tb_afcreceiverecordinfo

{
  "message": "\u8868 tb_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_afcreceiverecordinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(RC)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL COMMENT '客户回款日期',
  `ReceivePrice` decimal(20,2) DEFAULT NULL COMMENT '客户回款金额',
  `ReceiveIssue` int(11) DEFAULT NULL COMMENT '客户回款期数',
  `ReceiveStatus` varchar(20) DEFAULT NULL COMMENT '状态描述',
  `ReceiveStatusRemark` varchar(50) DEFAULT NULL COMMENT '状态描述备注',
  `PersonAssess` tinyint(4) DEFAULT NULL COMMENT '人员考核(0-否,1-是)',
  `ProAssess` tinyint(4) DEFAULT NULL COMMENT '省份考核(0-否,1-是)',
  `AddRemark1` varchar(200) DEFAULT NULL COMMENT '补充描述1',
  `AddRemark2` varchar(200) DEFAULT NULL COMMENT '补充描述2',
  `PromptMerits` decimal(20,2) DEFAULT NULL COMMENT '协催绩效',
  `SettleTime` datetime DEFAULT NULL COMMENT '结算时间',
  `SettleRemark` int(11) DEFAULT NULL COMMENT '结算备注(0-正常结算,1-超期还款,2-结清/交车,3-项目对账)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdateById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '运营登记日期',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ReceiveTime` (`ReceiveDate`) USING BTREE,
  KEY `NON-ReceiveStatus` (`ReceiveStatus`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-CreatedAt` (`CreatedAt`) USING BTREE,
  KEY `NON-UpdatedAt` (`UpdatedAt`) USING BTREE,
  KEY `NON-SettleTime` (`SettleTime`),
  KEY `NON-SettleRemark` (`SettleRemark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='金融运营回款信息'

columnss

{
  "message": "\u8868 columnss \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `columnss` (
  `columnsss` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userclockin_log

{
  "message": "\u8868 tb_userclockin_log \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockin_log` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `StartTime` datetime DEFAULT NULL COMMENT '上班时间',
  `EndTime` datetime DEFAULT NULL COMMENT '下班时间',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-StartTime` (`StartTime`) USING BTREE,
  KEY `NON-EndTime` (`EndTime`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=418115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡日志表(31天)'

tb_workflowinfo

{
  "columns": {
    "Remark": {
      "type": {
        "source": "varchar(500)",
        "target": "varchar(200)"
      }
    }
  }
}

tm_vi_workstepinfo_2021

{
  "message": "\u8868 tm_vi_workstepinfo_2021 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_vi_workstepinfo_2021`;

vi_workorderfilmdetail_2

{
  "message": "\u8868 vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

tb_workorderdetailmodel

{
  "message": "\u8868 tb_workorderdetailmodel \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderdetailmodel` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `Report` int(11) NOT NULL COMMENT '报表(1-金融工单明细表)',
  `ModelName` varchar(50) DEFAULT NULL COMMENT '报表模板名称',
  `Column` text COMMENT '自定义字段',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '模板创建人账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '模板创建人姓名',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `Deleted` tinyint(4) DEFAULT NULL COMMENT '是否删除',
  PRIMARY KEY (`Id`),
  KEY `NON-Report` (`Report`) USING BTREE,
  KEY `NON-ModelName` (`ModelName`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COMMENT='报表导出模板表'

workflowruntimedelegatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_chpworkorderdetial

{
  "message": "\u8868 vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

config_usermessagereminder

{
  "message": "\u8868 config_usermessagereminder \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `config_usermessagereminder` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '用户登录名',
  `MessageType` smallint(6) DEFAULT NULL COMMENT '消息提醒类型(1语音 2横幅)',
  `RestingEnable` smallint(6) DEFAULT '1' COMMENT '休息中是否启用(0否1是)',
  `Enable` smallint(6) DEFAULT '1' COMMENT '是否启用(0否1是)',
  `CreatedById` char(36) DEFAULT NULL COMMENT '信息录入人员',
  `CreatedAt` datetime DEFAULT NULL COMMENT '信息录入时间',
  `UpdatedById` char(36) DEFAULT NULL COMMENT '信息最后修改人员',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '信息最后修改时间',
  `DeletedById` char(36) DEFAULT NULL COMMENT '信息删除人员',
  `DeletedAt` datetime DEFAULT NULL COMMENT '信息删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标识',
  PRIMARY KEY (`Id`),
  KEY `NON-UserCenterId` (`UserCenterId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-MessageType` (`MessageType`) USING BTREE,
  KEY `NON-RestingEnable` (`RestingEnable`) USING BTREE,
  KEY `NON-Enable` (`Enable`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='消息提醒配置表'

vi_qualityorderdetail

{
  "columns": {
    "AuditContent": {
      "message": "\u5217 AuditContent \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowruntimeitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

vi_vhsworkingorderinfo

{
  "columns": {
    "AdmissibilityStatus": {
      "message": "\u5217 AdmissibilityStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReturnState": {
      "type": {
        "source": "int(6)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_usermapsummary

{
  "message": "\u8868 tm_usermapsummary \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_usermapsummary` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `1` (`AreaCode`),
  KEY `2` (`AreaType`),
  KEY `3` (`OrderTypeName`),
  KEY `4` (`ProviderCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='智能工单大屏_服务人员地图明细'

tb_workflowrestartlog

{
  "message": "\u8868 tb_workflowrestartlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workflowrestartlog` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(15) DEFAULT NULL COMMENT '工单ID',
  `RestartType` int(11) DEFAULT NULL COMMENT '事件类型',
  `OrgCode` varchar(10) DEFAULT NULL COMMENT '服务商编码',
  `OrderType` varchar(20) DEFAULT NULL COMMENT '工单类型',
  `CreatedAt` datetime(3) DEFAULT NULL COMMENT '数据创建时间',
  `Num` int(11) DEFAULT '0' COMMENT '重试次数',
  `LastRestartTime` datetime(3) DEFAULT NULL COMMENT '上次重试时间',
  `OtherData` text COMMENT '附加数据',
  `Remark` text COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `WorkOrderId` (`WorkOrderId`),
  KEY `Num` (`Num`),
  KEY `CreatedAt` (`CreatedAt`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='作流外挂接口执行失败重试日志'

test_service_info

{
  "message": "\u8868 test_service_info \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `test_service_info` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `Name` varchar(50) DEFAULT NULL COMMENT '服务名称',
  `Code` varchar(20) DEFAULT NULL COMMENT '服务编号',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  PRIMARY KEY (`Id`,`DynamicId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tmp_chpresourcedetail

{
  "message": "\u8868 tmp_chpresourcedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chpresourcedetail` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BrandName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `SourceType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件类型',
  `FileName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
  `Url` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '链接',
  `CreatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`)
) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='充电桩导出附件临时表'

tm_flowstatus

{
  "message": "\u8868 tm_flowstatus \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_flowstatus` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ItemCode` varchar(50) DEFAULT NULL,
  `ItemName` varchar(50) DEFAULT NULL,
  `NodeCode` varchar(50) DEFAULT NULL,
  `NodeName` varchar(50) DEFAULT NULL,
  `StatusName` varchar(50) DEFAULT NULL,
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`Id`),
  KEY `NON-ItemName` (`ItemName`),
  KEY `NON-NodeName` (`NodeName`),
  KEY `NON-StatusName` (`StatusName`)
) ENGINE=InnoDB AUTO_INCREMENT=577 DEFAULT CHARSET=utf8 COMMENT='各工作流中各步骤与状态取值对应关系表'

home_usermapdaily

{
  "message": "\u8868 home_usermapdaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdaily` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `Alng` decimal(18,6) DEFAULT NULL COMMENT '高德经度',
  `Alat` decimal(18,6) DEFAULT NULL COMMENT '高德纬度',
  `ServicerCnt` int(11) DEFAULT NULL COMMENT '覆盖人数',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`)
) ENGINE=InnoDB AUTO_INCREMENT=16639 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图日报'

home_orderdetaildaily

{
  "message": "\u8868 home_orderdetaildaily \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_orderdetaildaily` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DetailType` smallint(6) DEFAULT NULL COMMENT '明细类型(1下单时间2首次接单时间3下单成功时间4首次提交结果时间\n5最后一次提交结果时间6首次质检时间7工单质检时间8质检驳回时间9首次质检即通过10工单完成时间11工单关闭时间)',
  `WorkOrderId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单Id',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `OrderType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `CustomerId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `ServiceId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Id',
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员Code',
  `ServiceName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务人员姓名',
  `DetailTime` datetime DEFAULT NULL COMMENT '明细事件时间',
  `CheckDate` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '查询日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON_ServiceCode` (`ServiceCode`),
  KEY `UNI-DetailWorkId` (`DetailType`,`WorkOrderId`),
  KEY `NON_AreaCode` (`AreaCode`),
  KEY `NON_ProCode` (`ProCode`),
  KEY `NON_ServiceId` (`ServiceId`),
  KEY `NON_DetailType` (`DetailType`),
  KEY `NON_ProviderCode` (`ProviderCode`),
  KEY `NON_WorkOrderId` (`WorkOrderId`),
  KEY `NON_CustomerName` (`CustomerName`),
  KEY `NON_CityCode` (`CityCode`),
  KEY `NON_OrderType` (`OrderType`),
  KEY `NON_CheckDate` (`CheckDate`),
  KEY `NON_DetailTime` (`DetailTime`),
  KEY `NON_CustomerId` (`CustomerId`)
) ENGINE=InnoDB AUTO_INCREMENT=107630197 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础数据_每日工单明细'

tmp_dists

{
  "message": "\u8868 tmp_dists \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_dists` (
  `lv3code` varchar(255) DEFAULT NULL,
  `lv3name` varchar(255) DEFAULT NULL,
  `zr3code` varchar(255) DEFAULT NULL,
  `zr3name` varchar(255) DEFAULT NULL,
  `zr2code` varchar(255) DEFAULT NULL,
  `zr2name` varchar(255) DEFAULT NULL,
  `zr1code` varchar(255) DEFAULT NULL,
  `lv1name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_userworkphonedetail

{
  "message": "\u8868 tb_userworkphonedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphonedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WH)',
  `PhoneInfoId` varchar(12) DEFAULT NULL COMMENT '工作手机主表ID(tb_userworkphoneinfo.Id)',
  `ConnectTime` datetime DEFAULT NULL COMMENT '沟通时间(通话/微信语音-[通话时间]、短信-[发送/接收时间]、微信-[最近沟通时间])',
  `ConnectInfo` int(11) DEFAULT NULL COMMENT '沟通情况(通话/微信语音-[通话时长(秒)]、微信-[聊天记录字符数])',
  `ConnectType` smallint(6) DEFAULT '0' COMMENT '沟通方式(0-无数据,1-呼入,2-呼出,3-接收,4-发送)',
  `ConnectStatus` smallint(6) DEFAULT '0' COMMENT '接通状态(0-无数据,1-接通,2-未接通)',
  `RecordDay` date DEFAULT NULL COMMENT '微信记录日期',
  `RecordTime` int(11) DEFAULT NULL COMMENT '微信记录时间(1[0:00:00~5:59:59];2[6:00:00~11:59:59];3[12:00:00~17:59:59];4[18:00:00~23:59:59])',
  `ChatHistory` json DEFAULT NULL COMMENT '聊天记录Json',
  `DataInfo` text COMMENT '数据信息(短信内容)',
  `Url` varchar(500) DEFAULT NULL COMMENT '附件链接',
  `ExternalId` varchar(100) DEFAULT NULL COMMENT '外部id',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/数据同步时间',
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `DeletedAt` datetime DEFAULT NULL COMMENT '删除时间',
  `Deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0:否,1:是)',
  PRIMARY KEY (`Id`),
  KEY `CreatedAt` (`CreatedAt`),
  KEY `RecordTime` (`RecordTime`),
  KEY `RecordDay` (`RecordDay`),
  KEY `ConnectTime` (`ConnectTime`),
  KEY `ConnectStatus` (`ConnectStatus`),
  KEY `ExternalId` (`ExternalId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机沟通信息冗余表'

tb_userruleinfo_serv

{
  "message": "\u8868 tb_userruleinfo_serv \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userruleinfo_serv` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `OrgCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserCenterId` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '人员ID(tb_userinfo.UserCenterId)',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员登录名',
  `OrderType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `DistrictCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限内地区编码',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP,
  `Deleted` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-DistrictCode` (`DistrictCode`),
  KEY `NON-LoginName` (`LoginName`),
  KEY `NON-OrderType` (`OrderType`),
  KEY `NON-OrgCode` (`OrgCode`),
  KEY `NON-UserCenterId` (`UserCenterId`)
) ENGINE=InnoDB AUTO_INCREMENT=2377 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='通用域_人员区域权限表'

tb_workauditphotoinfo

{
  "message": "\u8868 tb_workauditphotoinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workauditphotoinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `AuditPhotoType` smallint(6) DEFAULT NULL COMMENT '质检照片类型:1.人车合影照片;2.三合一照片;3.安装远照(设备0059);4.安装近照(设备0059);5.环境照片;',
  `AuditPhotoRule` varchar(200) DEFAULT NULL COMMENT '质检照片类型识别规则',
  `AuditStatus` smallint(6) DEFAULT NULL COMMENT '质检状态:0.未通过;1.已通过;',
  `ResourceId` char(12) DEFAULT NULL COMMENT '资源表Id(basic_resourceitem.Id)',
  `AuditRemark` varchar(50) DEFAULT NULL COMMENT '质检备注',
  `IsAuditError` smallint(6) DEFAULT NULL COMMENT '是否质检系统识别有误:0.否;1.是;',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-ResourceId` (`ResourceId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='业务域_自动质检图片信息'

有效任务工时明细

{
  "message": "\u8868 \u6709\u6548\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `有效任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL,
  `f13` varchar(255) DEFAULT NULL,
  `f14` varchar(255) DEFAULT NULL,
  `f15` varchar(255) DEFAULT NULL,
  `f16` varchar(255) DEFAULT NULL,
  `f17` varchar(255) DEFAULT NULL,
  `f18` varchar(255) DEFAULT NULL,
  `f19` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tm_resource

{
  "message": "\u8868 tm_resource \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_resource` (
  `resourceid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `appcode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `workorderid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `resourcename` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `URL` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`resourceid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='临时存储工单编号20231220'

tb_workaddressinfo

{
  "indexes": {
    "NON-Address": {
      "message": "\u7d22\u5f15 NON-Address \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

job

{
  "message": "\u8868 job \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `job` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `StateId` int(11) DEFAULT NULL,
  `StateName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `InvocationData` longtext NOT NULL,
  `Arguments` longtext NOT NULL,
  `CreatedAt` datetime(6) NOT NULL,
  `ExpireAt` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `IX_Job_StateName` (`StateName`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

tb_userclockindeviceinfo

{
  "message": "\u8868 tb_userclockindeviceinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockindeviceinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(100) DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) DEFAULT NULL COMMENT '用户姓名',
  `VisitorRole` varchar(50) DEFAULT NULL COMMENT '角色',
  `InstitutionName` varchar(100) DEFAULT NULL COMMENT '部门',
  `ProCode` varchar(20) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(20) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '区域名称',
  `Address` varchar(500) DEFAULT NULL COMMENT '详细地址',
  `ClockInDate` date NOT NULL COMMENT '打卡日期',
  `ClockInTime` time NOT NULL COMMENT '打卡时间',
  `ClockInLng` varchar(20) DEFAULT NULL COMMENT '打卡经度',
  `ClockInLat` varchar(50) DEFAULT NULL COMMENT '打卡纬度',
  `ClockInAddress` varchar(200) DEFAULT NULL COMMENT '打卡地址',
  `InsertTime` datetime(6) DEFAULT NULL,
  `Deleted` smallint(6) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-ClockInDate` (`ClockInDate`) USING BTREE,
  KEY `NON-ClockInTime` (`ClockInTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-ProCode` (`ProCode`) USING BTREE,
  KEY `NON-CityCode` (`CityCode`) USING BTREE,
  KEY `NON-AreaCode` (`AreaCode`) USING BTREE,
  KEY `NON-ProName` (`ProName`) USING BTREE,
  KEY `NON-CityName` (`CityName`) USING BTREE,
  KEY `NON-AreaName` (`AreaName`) USING BTREE,
  KEY `NON-ClockInLng` (`ClockInLng`) USING BTREE,
  KEY `NON-ClockInLat` (`ClockInLat`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=213 ROW_FORMAT=DYNAMIC COMMENT='用户下班打卡信息表'

vi_riskworkorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderinfo_test

{
  "message": "\u8868 tb_workorderinfo_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderinfo_test` (
  `Id` varchar(36) NOT NULL COMMENT '主键(WI)',
  `AppCode` varchar(50) DEFAULT NULL COMMENT '申请编码',
  `SourceType` smallint(6) DEFAULT NULL COMMENT '工单来源(0工单下单1智车品2客户接口3LCRM下单4OCRM下单5平安私有云6金融SAAS推送7车务推送)',
  `OrderType` varchar(50) DEFAULT NULL COMMENT '工单类型(sys_ordertypeinfo.Code)',
  `CreateType` smallint(6) DEFAULT NULL COMMENT '工单建单方式(来源二级分类)(1批量导入)',
  `ServiceProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code',
  `WorkStatus` smallint(6) DEFAULT NULL COMMENT '工单状态(basic_workflowstatus.WorkStatus)',
  `CustomerId` char(12) DEFAULT NULL COMMENT '客户Id',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户名称',
  `CustStoreId` char(12) DEFAULT NULL COMMENT '门店Id',
  `CustStoreName` varchar(100) DEFAULT NULL COMMENT '门店名称',
  `CustStoreCode` varchar(50) DEFAULT NULL COMMENT '门店Code',
  `PreCustStoreId` char(12) DEFAULT NULL COMMENT '客户接口下单门店Id',
  `PreCustStoreName` varchar(100) DEFAULT NULL COMMENT '客户接口下单门店名称',
  `CustSettleId` char(12) DEFAULT NULL COMMENT '结算单位Id',
  `CustSettleName` varchar(100) DEFAULT NULL COMMENT '结算单位名称',
  `IsCustomer` tinyint(1) NOT NULL COMMENT '是否为客户(0否1是)',
  `CustCoopType` smallint(6) DEFAULT NULL COMMENT '客户是否有合作商品(1中瑞2非中瑞3中瑞+非中瑞)',
  `ProCode` varchar(10) DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(50) DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(10) DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(50) DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(20) DEFAULT NULL COMMENT '地区Code',
  `AreaName` varchar(50) DEFAULT NULL COMMENT '地区名称',
  `InstallAddress` varchar(200) DEFAULT NULL COMMENT '加装地址',
  `InstallTime` datetime DEFAULT NULL COMMENT '加装时间',
  `RequiredTime` datetime DEFAULT NULL COMMENT '要求时间',
  `LinkMan` varchar(50) DEFAULT NULL COMMENT '联系人姓名',
  `LinkTel` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `SecondLinkTel` varchar(20) DEFAULT NULL COMMENT '第二联系电话',
  `SecondLinkMan` varchar(50) DEFAULT NULL COMMENT '第二联系人',
  `WarehouseId` char(12) DEFAULT NULL COMMENT '发货一级仓Id',
  `WarehouseName` varchar(100) DEFAULT NULL COMMENT '发货一级仓名称',
  `Remark` varchar(500) DEFAULT NULL COMMENT '客户备注',
  `IsUrgent` tinyint(1) NOT NULL DEFAULT '0' COMMENT '检修工单是否紧急(0否1是)',
  `CustUniqueSign` varchar(50) DEFAULT NULL COMMENT '客户唯一标识',
  `CreatePersonCode` varchar(50) DEFAULT NULL COMMENT '建单人Code',
  `CreatePersonName` varchar(50) DEFAULT NULL COMMENT '建单人姓名',
  `EffectiveTime` datetime DEFAULT NULL COMMENT '工单生效时间',
  `EffectiveSuccessfulTime` datetime DEFAULT NULL COMMENT '下单成功生效时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `LastUpdateTimeStamp` bigint(20) DEFAULT (unix_timestamp(now(3))) COMMENT '最近更新时间',
  `LastUpdateTimeStamp1` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  PRIMARY KEY (`Id`),
  KEY `LastUpdateTimeStamp1` (`LastUpdateTimeStamp1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单信息表'

vi_workorderlistforafc

{
  "message": "\u8868 vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

tmp_districtyx

{
  "message": "\u8868 tmp_districtyx \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_districtyx` (
  `省编码` varchar(255) DEFAULT NULL,
  `省名称` varchar(255) DEFAULT NULL,
  `市编码` varchar(255) DEFAULT NULL,
  `市名称` varchar(255) DEFAULT NULL,
  `区编码` varchar(255) DEFAULT NULL,
  `区名称` varchar(255) DEFAULT NULL,
  `区编码1` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_riskworkorderinfo_other

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_cxhis

{
  "message": "\u8868 tmp_cxhis \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhis` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `TableName` varchar(100) DEFAULT NULL,
  `OldPrefix` varchar(20) DEFAULT NULL,
  `KeyPrefix` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `1` (`TableName`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COMMENT='长享历史数据迁移临时表'

tb_afcfeedetail

{
  "indexes": {
    "NON-WorkOrderId-PriceTypeCode": {
      "message": "\u7d22\u5f15 NON-WorkOrderId-PriceTypeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

hangfire_distributedlock

{
  "indexes": {
    "Resource": {
      "message": "\u7d22\u5f15 Resource \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodes_bak

{
  "message": "\u8868 workflownodes_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodes_bak`;

rp_workordercount

{
  "indexes": {
    "NON-ArtificialServicePriceName": {
      "message": "\u7d22\u5f15 NON-ArtificialServicePriceName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkOrderId": {
      "message": "\u7d22\u5f15 NON-WorkOrderId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_feeauditlog

{
  "message": "\u8868 tb_feeauditlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_feeauditlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `FeeApplicationId` varchar(12) DEFAULT NULL COMMENT '申请单ID(tb_feeapplicationinfo.id)',
  `PersonCode` char(12) DEFAULT NULL COMMENT '操作人Code',
  `PersonName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `OperationType` varchar(20) DEFAULT NULL COMMENT '操作类型',
  `Result` varchar(20) DEFAULT NULL COMMENT '审核结果',
  `Remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `InsertTime` datetime DEFAULT NULL,
  `Deleted` tinyint(4) NOT NULL,
  PRIMARY KEY (`Id`),
  KEY `NON-FeeApplicationId` (`FeeApplicationId`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3647 DEFAULT CHARSET=utf8 COMMENT='通用域_费用申请审批日志'

vi_afcworkorderdetailforexport

{
  "message": "\u8868 vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

tmp_workimp_mid

{
  "message": "\u8868 tmp_workimp_mid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_workimp_mid` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `workorderid` varchar(12) DEFAULT NULL,
  `ordertype` varchar(200) DEFAULT NULL,
  `SubjectCodeSummary` varchar(200) DEFAULT NULL,
  `SubjectNameSummary` varchar(200) DEFAULT NULL,
  `SubjectNum` int(11) DEFAULT NULL,
  `appcode` varchar(200) DEFAULT NULL,
  `custname` varchar(200) DEFAULT NULL,
  `customerid` varchar(200) DEFAULT NULL,
  `CustStoreId` varchar(200) DEFAULT NULL,
  `storename` varchar(200) DEFAULT NULL,
  `CustStoreCode` varchar(200) DEFAULT NULL,
  `CustSettleId` varchar(200) DEFAULT NULL,
  `settlename` varchar(200) DEFAULT NULL,
  `brandname` varchar(200) DEFAULT NULL,
  `procode` varchar(200) DEFAULT NULL,
  `proname` varchar(200) DEFAULT NULL,
  `citycode` varchar(200) DEFAULT NULL,
  `cityname` varchar(200) DEFAULT NULL,
  `areacode` varchar(200) DEFAULT NULL,
  `areaname` varchar(200) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  `carusername` varchar(200) DEFAULT NULL,
  `carusertel` varchar(200) DEFAULT NULL,
  `installperson` varchar(200) DEFAULT NULL,
  `loginname` varchar(200) DEFAULT NULL,
  `usercenterid` varchar(200) DEFAULT NULL,
  `compdate` date DEFAULT NULL,
  `submittime` datetime DEFAULT NULL,
  `rownum` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8192 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

home_viewdata

{
  "message": "\u8868 home_viewdata \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_viewdata` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `DataType` smallint(6) DEFAULT NULL,
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `JsonValue` json DEFAULT NULL COMMENT 'data数据',
  `InsertTime` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `home_viewdata_ProCode_index` (`ProCode`),
  KEY `home_viewdata_DateType_index` (`DateType`),
  KEY `home_viewdata_DataType_index` (`DataType`),
  KEY `home_viewdata_ProviderCode_index` (`ProviderCode`)
) ENGINE=InnoDB AUTO_INCREMENT=1036829 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='大屏工单_首页视图'

home_auditcount

{
  "message": "\u8868 home_auditcount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_auditcount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '质检单量',
  `OnceAuditCnt` int(11) NOT NULL DEFAULT '0' COMMENT '首次质检即完成单量',
  `OnceAuditRate` int(11) DEFAULT NULL COMMENT '质检一次通过率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=13739 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_质检信息'

home_usermapdetail

{
  "message": "\u8868 home_usermapdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usermapdetail` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `AreaType` smallint(6) DEFAULT NULL COMMENT '区域类型(1省份2城市3区县)',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域编码',
  `SelfCnt` int(11) DEFAULT NULL COMMENT '自有服务人员数量',
  `OtherCnt` int(11) DEFAULT NULL COMMENT '三方服务人员数量',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-AreaType` (`AreaType`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-OrderTypeName` (`OrderTypeName`)
) ENGINE=InnoDB AUTO_INCREMENT=795635 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务人员地图明细'

tb_workorderrecheckinfo

{
  "message": "\u8868 tb_workorderrecheckinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderrecheckinfo` (
  `Id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单Id',
  `RecheckStatus` smallint(6) DEFAULT NULL COMMENT '复检状态:0.复检不通过;1.复检通过;2.待复检;',
  `RecheckContent` varchar(100) DEFAULT NULL COMMENT '复检不通过原因',
  `RecheckPersonCode` varchar(50) DEFAULT NULL COMMENT '复检人账号',
  `RecheckPersonName` varchar(50) DEFAULT NULL COMMENT '复检人名称',
  `FirstRecheckTime` datetime DEFAULT NULL COMMENT '首次复检时间',
  `RecheckPassTime` datetime DEFAULT NULL COMMENT '复检通过时间',
  `CreatedById` char(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT NULL,
  `UpdatedById` char(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` char(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `NON-RecheckPassTime` (`RecheckPassTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='业务域_复检工单信息表'

vi_accessoryinfo

{
  "columns": {
    "DeviceUniqueNo": {
      "message": "\u5217 DeviceUniqueNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsBundingAsset": {
      "message": "\u5217 IsBundingAsset \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "IsUnusual": {
      "message": "\u5217 IsUnusual \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ResourceClassName": {
      "message": "\u5217 ResourceClassName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_importlog

{
  "indexes": {
    "NON-ImportCode": {
      "message": "\u7d22\u5f15 NON-ImportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workorderforsearch

{
  "message": "\u8868 vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

tb_userworkphoneinfo

{
  "message": "\u8868 tb_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `WXPhoneInfoId` varchar(12) DEFAULT NULL COMMENT '微信语音绑定微信聊天记录ID(tb_userworkphoneinfo.Id)',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`),
  KEY `WXPhoneInfoId` (`WXPhoneInfoId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

tb_userdetail

{
  "indexes": {
    "NON-AffiliatedInstitution": {
      "message": "\u7d22\u5f15 NON-AffiliatedInstitution \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_riskhistoryorder

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

tb_workorderrelation

{
  "columns": {
    "RelateNo": {
      "message": "\u5217 RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-RelateNo": {
      "message": "\u7d22\u5f15 NON-RelateNo \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workedorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tm_main

{
  "message": "\u8868 tm_main \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_main`;

tb_abnormalorder_log

{
  "columns": {
    "LastUpdatedTimestamp": {
      "message": "\u5217 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "MessageRemindJson": {
      "message": "\u5217 MessageRemindJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "LastUpdatedTimestamp": {
      "message": "\u7d22\u5f15 LastUpdatedTimestamp \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userworkphoneinfo_backup

{
  "message": "\u8868 tb_userworkphoneinfo_backup \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userworkphoneinfo_backup` (
  `Id` varchar(12) NOT NULL COMMENT '主键(WP)',
  `DataStatus` smallint(6) DEFAULT '0' COMMENT '数据状态(0-待匹配,1-匹配中,2-已匹配)',
  `DataSource` smallint(6) DEFAULT NULL COMMENT '来源(1-云客,2-安米)',
  `DataType` smallint(6) DEFAULT NULL COMMENT '数据类型(1-通话,2-短信,3-微信,4-微信语音)',
  `LoginName` varchar(50) DEFAULT NULL COMMENT '员工账号',
  `UserName` varchar(100) DEFAULT NULL COMMENT '员工姓名',
  `UserTel` varchar(50) DEFAULT NULL COMMENT '员工电话',
  `UserRole` varchar(50) DEFAULT NULL COMMENT '员工角色',
  `UserWxId` varchar(50) DEFAULT NULL COMMENT '员工微信Id(tb_wxuserinfo.WxId)',
  `CustomerWxId` varchar(50) DEFAULT NULL COMMENT '客户微信Id(tb_wxuserinfo.WxId)',
  `WxRelationType` smallint(6) DEFAULT NULL COMMENT '微信关系类型(1-好友,2-群)',
  `CustomerName` varchar(100) DEFAULT NULL COMMENT '客户姓名/备注(通话/短信-[客户姓名]、微信-[客户微信/群备注]、微信语音-[通话人备注])',
  `CustomerTel` varchar(50) DEFAULT NULL COMMENT '客户手机号',
  `FirstConnectTime` datetime DEFAULT NULL COMMENT '第一次沟通时间/数据同步时间',
  `LastConnectTime` datetime DEFAULT NULL COMMENT '最新沟通时间',
  `DateMatedAt` datetime DEFAULT NULL COMMENT '匹配时间',
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedAt` datetime DEFAULT NULL COMMENT '最后一次修改时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `DataStatus` (`DataStatus`),
  KEY `UserName` (`UserName`),
  KEY `UserTel` (`UserTel`),
  KEY `UserRole` (`UserRole`),
  KEY `LoginName` (`LoginName`),
  KEY `CustomerName` (`CustomerName`),
  KEY `CustomerTel` (`CustomerTel`),
  KEY `LastConnectTime` (`LastConnectTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作手机信息表'

workflowruntimesubscribemsgs

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tm_userarea

{
  "message": "\u8868 tm_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProCode` varchar(50) DEFAULT NULL COMMENT '省份Code',
  `AreaCnt` int(11) DEFAULT NULL COMMENT '区域覆盖人数',
  PRIMARY KEY (`Id`),
  KEY `1` (`ProviderCode`),
  KEY `2` (`ProCode`)
) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8

tm_updatepropertycode20210923

{
  "message": "\u8868 tm_updatepropertycode20210923 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_updatepropertycode20210923`;

vi_riskworkorderinfo_other1

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

home_userarea

{
  "message": "\u8868 home_userarea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_userarea` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `UserId` char(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户Id',
  `LoginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户登录名',
  `UserName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户姓名',
  `Ascription` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  `TeamCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队Code(basic_teaminfo.Code)',
  `TeamName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '团队名称',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商Code(serviceordercenter.basic_serviceprovider.code)',
  `ProviderName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务供应商名称',
  `OperateAttributes` smallint(6) DEFAULT NULL COMMENT '经营属性(0自营 1非自营)',
  `OrderTypeName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工单类型',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份Code',
  `ProName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份名称',
  `CityCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市Code',
  `CityName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `AreaCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域Code',
  `AreaName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '区域名称',
  `CheckDate` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报表日期',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-TeamCode` (`TeamCode`),
  KEY `NON-AreaCode` (`AreaCode`),
  KEY `NON-CheckDate` (`CheckDate`),
  KEY `NON-OrderTypeName` (`OrderTypeName`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-UserId` (`UserId`),
  KEY `NON-CityCode` (`CityCode`),
  KEY `NON-Ascription` (`Ascription`),
  KEY `NON-LoginName` (`LoginName`)
) ENGINE=InnoDB AUTO_INCREMENT=327676 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_基础信息_人员覆盖区域信息'

slow918

{
  "message": "\u8868 slow918 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow918` (
  `api` varchar(1000) DEFAULT NULL,
  `loginName` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `count911` int(11) DEFAULT NULL,
  `count918` int(11) DEFAULT NULL,
  `countminus` int(11) DEFAULT NULL,
  `maxValue` int(11) DEFAULT NULL,
  `minValue` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflowprocessstates_bak

{
  "message": "\u8868 workflowprocessstates_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowprocessstates_bak`;

tb_chpworkbussinessjsoninfo

{
  "message": "\u8868 tb_chpworkbussinessjsoninfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_chpworkbussinessjsoninfo` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `WorkOrderId` char(12) DEFAULT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `BussinessJson` json DEFAULT NULL COMMENT '处理人信息JSON',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  `DynamicId` varchar(20) NOT NULL DEFAULT 'FA-' COMMENT '动态表单Id',
  `LastUpdateTimeStamp` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最近更新时间',
  `v_chpWXAddProgress` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpWXAddProgress'))) VIRTUAL COMMENT '(CHP)车主微信添加进度',
  `v_chpCarUserName` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserName'))) VIRTUAL COMMENT '(CHP)车主姓名',
  `v_chpCarUserTel` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarUserTel'))) VIRTUAL COMMENT '(CHP)车主电话',
  `v_chpSurveyInstallType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.InstallType'))) VIRTUAL COMMENT '(CHP)安装方式',
  `v_chpElectricityMetersType` varchar(50) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpSurveyInfo.ElectricityMetersType'))) VIRTUAL COMMENT '(CHP)电表类型',
  `v_chpFirstContactRole` smallint(6) GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')) = _utf8mb4''),0,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFirstContact.Role')))) VIRTUAL COMMENT '(CHP)首联人角色(1-运营,2-服务人员)',
  `v_chpNextFollowTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4''),NULL,if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpNextFollowTime'))))) VIRTUAL COMMENT '(CHP)下次跟进时间',
  `v_chpCarVinNumber` varchar(100) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpCarVinNumber'))) VIRTUAL COMMENT '(CHP)车架号',
  `v_ChpLineActualUsage` int(11) GENERATED ALWAYS AS ((if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆硬线'))),_utf8mb4'$.ActualUsage'))) + if((json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage')) in (_utf8mb4'null',_utf8mb4'')),0,json_unquote(json_extract(json_extract(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories')),json_unquote(json_search(json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpAccessories[*].AccessoriesType')),_utf8mb4'one',_utf8mb4'电缆软线'))),_utf8mb4'$.ActualUsage'))))) VIRTUAL COMMENT '(CHP)线缆实际用量(电缆硬线+电缆软线实际用量)',
  `v_chpFactoryBrand` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpFactoryBrand'))) VIRTUAL COMMENT '(CHP)主机厂品牌',
  `v_chpActualSolutionCode` varchar(200) GENERATED ALWAYS AS (json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpActualSolutionCode'))) VIRTUAL COMMENT '(CHP)实际处理方案Code',
  `v_chpOrderCompleteTime` datetime GENERATED ALWAYS AS (if((json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`BussinessJson`,_utf8mb4'$.chpOrderCompleteTime')))) VIRTUAL COMMENT '(CHP)工单完成时间',
  PRIMARY KEY (`Id`,`DynamicId`),
  KEY `NON-WorkOrderId` (`WorkOrderId`),
  KEY `NON-DynamicId` (`DynamicId`) USING BTREE,
  KEY `NON-LastUpdateTimeStamp` (`LastUpdateTimeStamp`),
  KEY `NON-v_chpWXAddProgress` (`v_chpWXAddProgress`) USING BTREE,
  KEY `NON-v_chpCarUserName` (`v_chpCarUserName`) USING BTREE,
  KEY `NON-v_chpCarUserTel` (`v_chpCarUserTel`) USING BTREE,
  KEY `NON-v_chpSurveyInstallType` (`v_chpSurveyInstallType`) USING BTREE,
  KEY `NON-v_chpElectricityMetersType` (`v_chpElectricityMetersType`) USING BTREE,
  KEY `NON-v_chpFirstContactRole` (`v_chpFirstContactRole`) USING BTREE,
  KEY `NON-v_chpNextFollowTime` (`v_chpNextFollowTime`) USING BTREE,
  KEY `NON-v_chpCarVinNumber` (`v_chpCarVinNumber`) USING BTREE,
  KEY `NON-v_chpFactoryBrand` (`v_chpFactoryBrand`) USING BTREE,
  KEY `NON-v_chpActualSolutionCode` (`v_chpActualSolutionCode`) USING BTREE,
  KEY `NON-chpOrderCompleteTime` (`v_chpOrderCompleteTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4131 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='业务域_工单业务信息JOSN冗余表(CHP)'

workflownodestepconditions

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp

{
  "message": "\u8868 tmp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp` (
  `A` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

vi_workorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_workorderoperationlog

{
  "message": "\u8868 tb_workorderoperationlog \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_workorderoperationlog` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `MainId` varchar(50) DEFAULT NULL COMMENT '父表ID(tb_afcreceiverecordinfo.id,tb_userworkphoneinfo.Id,tb_userfeedetail.FeeGroupCode)',
  `WorkOrderId` varchar(12) DEFAULT NULL,
  `LogType` int(11) NOT NULL COMMENT '日志类别(1-金融运营回款日志,2-工作手机信息匹配日志,3-充电桩团队管理人员费用信息修改日志,4-车电匹配失败(临时),5-团队管理变更日志)',
  `Object` varchar(50) DEFAULT NULL COMMENT '操作对象(回款登记/回款信息)',
  `OperCode` varchar(50) DEFAULT NULL COMMENT '操作人Code',
  `OperName` varchar(100) DEFAULT NULL COMMENT '操作人Name',
  `Operation` varchar(50) DEFAULT NULL COMMENT '操作',
  `SummaryInfo` varchar(500) DEFAULT NULL COMMENT '日志汇总',
  `ExtraJson` json DEFAULT NULL COMMENT '其它补充信息',
  `InsertTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间/操作时间',
  `Deleted` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`Id`),
  KEY `NON-MainId` (`MainId`) USING BTREE,
  KEY `NON-LogType` (`LogType`) USING BTREE,
  KEY `NON-OperCode` (`OperCode`) USING BTREE,
  KEY `NON-OperName` (`OperName`) USING BTREE,
  KEY `NON-InsertTime` (`InsertTime`) USING BTREE,
  KEY `NON-Deleted` (`Deleted`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=121230 DEFAULT CHARSET=utf8 COMMENT='通用操作日志表'

vi_workorderswitchdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tb_userclockininfo

{
  "message": "\u8868 tb_userclockininfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userclockininfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `LoginName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户登录名',
  `UserCenterId` char(36) DEFAULT NULL COMMENT '用户Id',
  `UserName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户姓名',
  `UserWorkStatus` int(11) DEFAULT NULL COMMENT '员工工作状态(0休息中 1工作中)',
  `ChangeType` int(11) DEFAULT NULL COMMENT '工作状态切换方式(0自动 1手动)',
  `IsAutomatic` int(11) DEFAULT NULL COMMENT '是否自动下班打卡(0否 1是)',
  `WorkTimeJson` json DEFAULT NULL COMMENT '工作时间Json',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Deleted` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-UserWorkStatus` (`UserWorkStatus`) USING BTREE,
  KEY `NON-IsAutomatic` (`IsAutomatic`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2168 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='员工打卡设置信息表'

workflowruntimesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

home_completebaseinfo

{
  "indexes": {
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodeactions_bak

{
  "message": "\u8868 workflownodeactions_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflownodeactions_bak`;

workflowhandlingstatus_bak

{
  "message": "\u8868 workflowhandlingstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowhandlingstatus_bak`;

tb_remarkinfo

{
  "indexes": {
    "NON-RemarkTime": {
      "message": "\u7d22\u5f15 NON-RemarkTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

vi_workfakeoffline

{
  "columns": {
    "MaterialNo": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

basic_workflowstatus_bak_new

{
  "message": "\u8868 basic_workflowstatus_bak_new \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak_new`;

basic_workflowstatus_bak

{
  "message": "\u8868 basic_workflowstatus_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `basic_workflowstatus_bak`;

workflowruntimetimingmsgsends

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

de_xichashiti

{
  "columns": {
    "testJson": {
      "message": "\u5217 testJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompletesteps

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

de_tb_merchant01

{
  "message": "\u8868 de_tb_merchant01 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant01` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息01'

tm_userinfo20210727

{
  "message": "\u8868 tm_userinfo20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfo20210727`;

tmp_chprpappcode

{
  "message": "\u8868 tmp_chprpappcode \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_chprpappcode` (
  `AppCode` varchar(100) NOT NULL,
  `WorkStatus` int(11) DEFAULT NULL,
  `BatchNo` varchar(50) DEFAULT NULL,
  `Result` int(11) DEFAULT NULL,
  `Remark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`AppCode`),
  KEY `AppCode` (`AppCode`),
  KEY `WorkStatus` (`WorkStatus`),
  KEY `BatchNo` (`BatchNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩明细表导出APPCODE及批次(即用即删)_长期表'

vi_userworkphoneinfo

{
  "message": "\u8868 vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

slow1119

{
  "message": "\u8868 slow1119 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `slow1119` (
  `api` varchar(255) DEFAULT NULL,
  `loginName` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `date` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `maxValue` varchar(255) DEFAULT NULL,
  `minValue` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tm_userinfoa20210727

{
  "message": "\u8868 tm_userinfoa20210727 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tm_userinfoa20210727`;

tm_persons20250212

{
  "message": "\u8868 tm_persons20250212 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons20250212` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

workflowcompletecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowruntimeactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowruntimestatus

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tb_workserviceinfo

{
  "columns": {
    "InstitutionCode": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(20)"
      }
    },
    "WorkerCode": {
      "message": "\u5217 WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerId": {
      "message": "\u5217 WorkerId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "WorkerName": {
      "message": "\u5217 WorkerName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-InstitutionCode": {
      "message": "\u7d22\u5f15 NON-InstitutionCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-WorkerCode": {
      "message": "\u7d22\u5f15 NON-WorkerCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_canaltest3

{
  "message": "\u8868 tmp_canaltest3 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest3`;

home_usercount

{
  "message": "\u8868 home_usercount \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `home_usercount` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `ProviderCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务商编码',
  `ProCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '省份编码',
  `DateType` smallint(6) DEFAULT NULL COMMENT '时间类型(1上月2上周3昨日4今年)',
  `AreaCnt` int(11) NOT NULL DEFAULT '0' COMMENT '区域覆盖人数',
  `CoverCnt` int(11) NOT NULL DEFAULT '0' COMMENT '实际施工人数',
  `ActiveRate` int(11) DEFAULT NULL COMMENT '活跃率',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据写入时间',
  PRIMARY KEY (`Id`),
  KEY `NON-ProviderCode` (`ProviderCode`),
  KEY `NON-ProCode` (`ProCode`),
  KEY `NON-DateType` (`DateType`)
) ENGINE=InnoDB AUTO_INCREMENT=1280 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='智能工单大屏_服务网络_人员信息'

move_workorder2023

{
  "columns": {
    "IsConsume": {
      "message": "\u5217 IsConsume \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  },
  "indexes": {
    "1": {
      "message": "\u7d22\u5f15 1 \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-BatchNo": {
      "message": "\u7d22\u5f15 NON-BatchNo \u5728\u6e90\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_source"
    }
  }
}

变更SQL:

ALTER TABLE `move_workorder2023` DROP COLUMN `IsConsume`;
ALTER TABLE `move_workorder2023` DROP INDEX `NON-BatchNo`;

workflowitems_bak

{
  "message": "\u8868 workflowitems_bak \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `workflowitems_bak`;

vi_workingorderinfo

{
  "columns": {
    "IsRelation": {
      "message": "\u5217 IsRelation \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tmp_cxhisorderid

{
  "message": "\u8868 tmp_cxhisorderid \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_cxhisorderid` (
  `Id` varchar(20) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='长享历史数据工单Id'

check_workflowjsonexclude

{
  "message": "\u8868 check_workflowjsonexclude \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `check_workflowjsonexclude` (
  `WorkOrderId` char(12) NOT NULL COMMENT '工单主单主键(tb_workorderinfo.Id)',
  `InsertTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`WorkOrderId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=49 ROW_FORMAT=DYNAMIC COMMENT='工作流冗余数据排除单据'

tb_feeapplicationinfo

{
  "columns": {
    "ApplyFee": {
      "message": "\u5217 ApplyFee \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonCode": {
      "message": "\u5217 ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyPersonName": {
      "message": "\u5217 ApplyPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ApplyReason": {
      "type": {
        "source": "varchar(300)",
        "target": "varchar(100)"
      }
    },
    "ApplyWorkStatus": {
      "message": "\u5217 ApplyWorkStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "AuditRemark": {
      "type": {
        "source": "varchar(200)",
        "target": "varchar(100)"
      }
    },
    "DynamicFormJson": {
      "message": "\u5217 DynamicFormJson \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FeeGroupCode": {
      "message": "\u5217 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonCode": {
      "message": "\u5217 LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditPersonName": {
      "message": "\u5217 LastAuditPersonName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "LastAuditTime": {
      "message": "\u5217 LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeCode": {
      "message": "\u5217 OriginalPayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "OriginalPayeeName": {
      "message": "\u5217 OriginalPayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeCode": {
      "message": "\u5217 PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PayeeName": {
      "message": "\u5217 PayeeName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "RuleActionLogId": {
      "message": "\u5217 RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyLoginName": {
      "message": "\u5217 SubsidyLoginName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyName": {
      "message": "\u5217 SubsidyName \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyRemark": {
      "message": "\u5217 SubsidyRemark \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyStatus": {
      "message": "\u5217 SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u5217 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "v_SettleMethod": {
      "message": "\u5217 v_SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "FeeGroupCode": {
      "message": "\u7d22\u5f15 FeeGroupCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-ApplyPersonCode": {
      "message": "\u7d22\u5f15 NON-ApplyPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-AuditStatus": {
      "message": "\u7d22\u5f15 NON-AuditStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditPersonCode": {
      "message": "\u7d22\u5f15 NON-LastAuditPersonCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-LastAuditTime": {
      "message": "\u7d22\u5f15 NON-LastAuditTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-PayeeCode": {
      "message": "\u7d22\u5f15 NON-PayeeCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-RuleActionLogId": {
      "message": "\u7d22\u5f15 NON-RuleActionLogId \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-SubsidyStatus": {
      "message": "\u7d22\u5f15 NON-SubsidyStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SettleMethod": {
      "message": "\u7d22\u5f15 SettleMethod \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "SubsidyTime": {
      "message": "\u7d22\u5f15 SubsidyTime \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

tb_userfeedetail

{
  "message": "\u8868 tb_userfeedetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tb_userfeedetail` (
  `Id` varchar(12) NOT NULL COMMENT '主键(UF)',
  `UserInfoId` varchar(12) DEFAULT NULL COMMENT 'tb_userinfo.id',
  `LoginName` varchar(20) DEFAULT NULL COMMENT '用户账号',
  `FeeGroupCode` varchar(50) DEFAULT NULL COMMENT '费用标准组code',
  `FeeItemId` varchar(12) DEFAULT NULL COMMENT '费用项目ID(tb_feeiteminfo.id)',
  `ServiceSubjectCode` varchar(50) DEFAULT NULL COMMENT '服务科目code(tb_servicesubject.code)',
  `RuleJson` json DEFAULT NULL COMMENT '条件JSON',
  `Price` decimal(10,2) DEFAULT '0.00' COMMENT '标准费用/分佣比例',
  `EffectDate` date DEFAULT NULL COMMENT '生效日期',
  `EffectStatus` smallint(6) DEFAULT NULL COMMENT '生效状态(0-待生效,1-已生效,2-已过期)',
  `IfShow` smallint(6) DEFAULT NULL COMMENT '是否展示(0-不展示,1-展示)',
  `CreatedById` varchar(36) DEFAULT NULL,
  `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP,
  `UpdatedById` varchar(36) DEFAULT NULL,
  `UpdatedAt` datetime DEFAULT NULL,
  `DeletedById` varchar(36) DEFAULT NULL,
  `DeletedAt` datetime DEFAULT NULL,
  `Deleted` smallint(6) DEFAULT '0',
  `v_Power` decimal(18,1) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Power')))) VIRTUAL COMMENT '(CHP)功率',
  `v_CustomerName` varchar(100) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerName')))) VIRTUAL COMMENT '(CHP)客户名称',
  `v_CustomerId` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.CustomerId')))) VIRTUAL COMMENT '(CHP)客户姓名',
  `v_Line` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.Line')))) VIRTUAL COMMENT '(CHP)线缆(米)',
  `v_BrandCode` varchar(50) GENERATED ALWAYS AS (if((json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')) = _utf8mb4'null'),NULL,json_unquote(json_extract(`RuleJson`,_utf8mb4'$.BrandCode')))) VIRTUAL COMMENT '(CHP)品牌标准code',
  PRIMARY KEY (`Id`),
  KEY `NON-UserInfoId` (`UserInfoId`) USING BTREE,
  KEY `NON-LoginName` (`LoginName`) USING BTREE,
  KEY `NON-FeeItemId` (`FeeItemId`) USING BTREE,
  KEY `NON-ServiceSubjectCode` (`ServiceSubjectCode`) USING BTREE,
  KEY `NON-EffectDate` (`EffectDate`) USING BTREE,
  KEY `NON-FeeGroupCode` (`FeeGroupCode`) USING BTREE,
  KEY `NON-IfShow` (`IfShow`) USING BTREE,
  KEY `NON-v_CustomerName` (`v_CustomerName`),
  KEY `NON-v_CustomerId` (`v_CustomerId`),
  KEY `NON-v_Line` (`v_Line`),
  KEY `NON-v_BrandCode` (`v_BrandCode`),
  KEY `NON-v_Power` (`v_Power`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='充电桩团队管理人员费用信息表'

tmp_canaltest1

{
  "message": "\u8868 tmp_canaltest1 \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `tmp_canaltest1`;

z_qianyi

{
  "message": "\u8868 z_qianyi \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `z_qianyi` (
  `table_name` varchar(200) NOT NULL,
  `table_comment` varchar(200) DEFAULT NULL,
  `rows` int(11) DEFAULT NULL,
  `remark` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

workflownoderelatedactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

de_tb_merchant

{
  "message": "\u8868 de_tb_merchant \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

workflowcompleteitems

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowcompleteactivities

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

workflowruntimecomments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

flink_tablea

{
  "message": "\u8868 flink_tablea \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP TABLE IF EXISTS `flink_tablea`;

事务、沟通、会议任务工时明细

{
  "message": "\u8868 \u4e8b\u52a1\u3001\u6c9f\u901a\u3001\u4f1a\u8bae\u4efb\u52a1\u5de5\u65f6\u660e\u7ec6 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `事务、沟通、会议任务工时明细` (
  `项目工作量统计` varchar(255) DEFAULT NULL,
  `f2` varchar(255) DEFAULT NULL,
  `f3` varchar(255) DEFAULT NULL,
  `f4` varchar(255) DEFAULT NULL,
  `f5` varchar(255) DEFAULT NULL,
  `f6` varchar(255) DEFAULT NULL,
  `f7` varchar(255) DEFAULT NULL,
  `f8` varchar(255) DEFAULT NULL,
  `f9` varchar(255) DEFAULT NULL,
  `f10` varchar(255) DEFAULT NULL,
  `f11` varchar(255) DEFAULT NULL,
  `f12` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

tb_afcworkfinanceinfo

{
  "columns": {
    "EntrustAmount": {
      "message": "\u5217 EntrustAmount \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "PaymentPeriod": {
      "type": {
        "source": "varchar(100)",
        "target": "int(11)"
      }
    },
    "Performance": {
      "message": "\u5217 Performance \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflownodeactors

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

rp_vhsworkorderdetail

{
  "columns": {
    "FirstReturnAuditState": {
      "message": "\u5217 FirstReturnAuditState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "FirstReturnRejectReason": {
      "message": "\u5217 FirstReturnRejectReason \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "ReceiveState": {
      "message": "\u5217 ReceiveState \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

rp_afcreceiverecordinfo

{
  "message": "\u8868 rp_afcreceiverecordinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `rp_afcreceiverecordinfo` (
  `Id` bigint(20) NOT NULL AUTO_INCREMENT,
  `RelateId` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'RelateId',
  `WorkOrderId` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `BatchNo` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AppCode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `WorkStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CustomerName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ContractNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `LinkMan` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `UserProName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `OverdueDays` int(11) DEFAULT NULL,
  `OverdueGrade` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `CaseDate` date DEFAULT NULL,
  `RetreatDate` date DEFAULT NULL,
  `ReceiveDate` date DEFAULT NULL,
  `ReceivePrice` decimal(20,2) DEFAULT NULL,
  `ReceiveIssue` int(11) DEFAULT NULL,
  `ReceiveStatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveStatusRemark` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `PersonAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProAssess` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Grade` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ProName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ServiceCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RegistrationDate` datetime DEFAULT NULL,
  `AddRemark1` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `AddRemark2` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReceiveAmounts` decimal(18,2) DEFAULT NULL,
  `ReturnedType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ReturnedType2` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalStatus` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `EntryAmount` decimal(18,2) DEFAULT NULL,
  `IfReport` tinyint(1) DEFAULT NULL,
  `PresentName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ApprovalTime` datetime DEFAULT NULL,
  `AuditTime` datetime DEFAULT NULL,
  `SubjectNameSummary` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `WorkOrderId` (`WorkOrderId`) USING BTREE,
  KEY `BatchNo` (`BatchNo`) USING BTREE,
  KEY `RelateId` (`RelateId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8222 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='金融回款登记明细表-测试'

de_tb_merchant20231129094137713

{
  "message": "\u8868 de_tb_merchant20231129094137713 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `de_tb_merchant20231129094137713` (
  `Id` varchar(36) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `code` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商户信息主表'

vi_workorderlistforchp

{
  "message": "\u8868 vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_workorderteardetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

vi_workorderfixdetail

{
  "columns": {
    "ODeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "OSimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

tm_persons

{
  "message": "\u8868 tm_persons \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tm_persons` (
  `LoginCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `RpDate` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `Company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

tb_riskdatatime

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "b\u00270\u0027"
      },
      "type": {
        "source": "smallint(1)",
        "target": "bit(1)"
      }
    }
  }
}

vi_workorderusedcarcheck2

{
  "message": "\u8868 vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

tb_exportlog

{
  "columns": {
    "ExpStatus": {
      "message": "\u5217 ExpStatus \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  },
  "indexes": {
    "NON-ExportCode": {
      "message": "\u7d22\u5f15 NON-ExportCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-IsRead": {
      "message": "\u7d22\u5f15 NON-IsRead \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    },
    "NON-OrgCode": {
      "message": "\u7d22\u5f15 NON-OrgCode \u5728\u76ee\u6807\u8868\u4e2d\u4e0d\u5b58\u5728",
      "type": "missing_in_target"
    }
  }
}

workflowcompleteattachments

{
  "columns": {
    "Deleted": {
      "default": {
        "source": null,
        "target": "0"
      },
      "nullable": {
        "source": false,
        "target": true
      },
      "type": {
        "source": "bit(1)",
        "target": "smallint(6)"
      }
    }
  }
}

tmp_tablename2

{
  "message": "\u8868 tmp_tablename2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE TABLE `tmp_tablename2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tablename` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8

vi_datalastest

{
  "columns": {
    "CategoryName": {
      "type": {
        "source": "text",
        "target": "mediumtext"
      }
    }
  }
}

vi_workorderinstalldetail

{
  "columns": {
    "DeviceNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    },
    "SimNumber": {
      "type": {
        "source": "varchar(100)",
        "target": "varchar(50)"
      }
    }
  }
}

View 差异

vi_riskworkorderinfo

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,`i`.`TriggerTime`,ifnull(`n`.`RiskTime`,now())) AS `EffectiveSuccessfulTimeSub`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),ifnull(`n`.`RiskTime`,now())) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`o`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`d`.`Status` AS `Status`,`d`.`IsHandle` AS `IsHandle`,`d`.`TriggerTime` AS `TriggerTime`,`d`.`RiskType` AS `RiskType`,`d`.`IndicatorCode` AS `IndicatorCode`,`d`.`Id` AS `RiskStatusId`,`f`.`ReceiveState` AS `receiveState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`i`.`TriggerTime` AS `EffectiveSuccessfulTime`,`j`.`Privoder` AS `Privoder`,`b`.`ShortFourVin` AS `ShortFourVin`,`n`.`RiskTime` AS `RiskTime`,`a`.`InstallTime` AS `InstallTime`,`a`.`EffectiveSuccessfulTime` AS `OrderEffectiveSuccessfulTime`,json_unquote(json_extract(`p`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workriskstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0) and (`f`.`ReceiveType` = 1)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_riskdatatime` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0) and (`i`.`DataCode` = 'Data001')))) left join `tb_workserviceinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_riskworkorderinfo` `n` on(((`a`.`Id` = `n`.`WorkOrderId`) and (`n`.`Deleted` = 0) and (`n`.`IndicatorCode` = `d`.`IndicatorCode`) and (`n`.`TimeType` = 1)))) left join `tb_appointmentconcat` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` <> 9) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_workingorderinfo

{
  "message": "\u89c6\u56fe vi_workingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperId` AS `OperId`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_accessoryresource

{
  "message": "\u89c6\u56fe vi_accessoryresource \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryresource`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryresource` AS select `a`.`Id` AS `Id`,`a`.`Code` AS `Code`,`a`.`Name` AS `Name`,`a`.`Remark` AS `Remark`,`a`.`ResourceId` AS `resourceId`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`OrgCode` AS `OrgCode`,`a`.`ResoureJson` AS `ResoureJson`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`ResourceClassName` AS `ResourceClassName` from (`basic_accessoryresource` `a` left join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_vhsworkingorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`FN_GETCLOSESTATUSNAMEBYORDERID`(`a`.`Id`) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`g`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.IsCommercialVehicle')) AS `IsCommercialVehicle`,`j`.`v_IsRelateEtc` AS `IsRelateEtc`,`j`.`v_IfEtcRecord` AS `IfEtcRecord`,`h`.`ValueName` AS `VhsReShelf`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`j`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`j`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,`h1`.`ActualReceiveMethod` AS `ReceiveMethod`,`h2`.`ActualReceiveMethod` AS `ReturnMethod`,`j`.`v_OutCardDate` AS `OutCardDate`,json_unquote(json_extract(`j`.`BussinessJson`,'$.MaxOutCardDay')) AS `MaxOutCardDay`,json_unquote(json_extract(`j`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) left join `tb_worktaginfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0) and (`h`.`TypeCode` = 'VhsReShelf')))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workedorderinfo

{
  "message": "\u89c6\u56fe vi_workedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workedorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`d`.`InsertTime` AS `InsertTime`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatedinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderacceptinfo

{
  "message": "\u89c6\u56fe vi_workorderacceptinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderacceptinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderacceptinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,1) AS `OperCode`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,2) AS `OperName`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,3) AS `DirectOrderAccept`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,4) AS `InsertTime`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderrecheckdetailforexport

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

vi_workorderforsearch

{
  "message": "\u89c6\u56fe vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderinfo

{
  "message": "\u89c6\u56fe vi_workorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`c`.`FirstAppointTime` AS `FirstAppointTime`,`c`.`LastRemark` AS `LastRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`IsUrgent` AS `IsUrgent`,`b`.`ShortVin` AS `ShortVin`,`d`.`TypeCode` AS `ContractNumberCode`,`d`.`Value` AS `ContractNumber`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`e`.`CompleteTime` AS `CompleteTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`f`.`IfUninstall` AS `IfUninstall`,`f`.`IsSwitch` AS `IsSwitch`,`f`.`IsMixPreOrder` AS `IsMixPreOrder`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`b`.`ShortFourVin` AS `ShortFourVin`,`f`.`TypeStatus` AS `TypeStatus`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`g`.`ServiceId` AS `ServiceId`,`g`.`ServiceCode` AS `ServiceCode`,`g`.`ServiceName` AS `ServiceName`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`i`.`v_CompleteAging` AS `CompleteAging`,`i`.`v_RescScreenshotAging` AS `RescScreenshotAging`,`i`.`v_RescScreenshotResult` AS `RescScreenshotResult`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_custcolumn` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`TypeCode` = '1') and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workorderstatus` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderfilmdetail_2

{
  "message": "\u89c6\u56fe vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

vi_custconfirmrule

{
  "message": "\u89c6\u56fe vi_custconfirmrule \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_custconfirmrule`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_custconfirmrule` AS select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`n`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' when 5 then '系统自动质检配置' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,`m`.`NodeName` AS `NodeName`,`n`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`RuleJson` AS `RuleJson` from ((`basic_custconfirmrule` `a` left join `basic_accessoryrule` `m` on(((`a`.`Id` = `m`.`CustConfirmId`) and (`m`.`Deleted` = 0)))) left join `basic_ordertypeinfo` `n` on(((`n`.`TypeCode` = `m`.`OrderType`) and (`n`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ConfirmType` <> 3)) group by `a`.`Id` union all select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`p`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,NULL AS `NodeName`,`p`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,NULL AS `RuleJson` from ((`basic_custconfirmrule` `a` join `basic_repetitivevin` `o` on(((`a`.`Id` = `o`.`CustConfirmId`) and (`o`.`Deleted` = 0)))) join `basic_ordertypeinfo` `p` on(((`p`.`TypeCode` = `o`.`OrderType`) and (`p`.`Deleted` = 0)))) where (`a`.`Deleted` = 0) group by `a`.`Id`

vi_tireworkorderinfo

{
  "message": "\u89c6\u56fe vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

vi_workorderinfo_mobile

{
  "message": "\u89c6\u56fe vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_riskworkorderinfo_other

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo_other` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` FORCE INDEX (`NON-CreatedAt`) left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderusedcarcheck2

{
  "message": "\u89c6\u56fe vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

vi_workorderrecheckdetail

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetial

{
  "message": "\u89c6\u56fe vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

vi_afcreceiverecorddetail

{
  "message": "\u89c6\u56fe vi_afcreceiverecorddetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_afcreceiverecorddetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcreceiverecorddetail` AS select `c`.`RelateId` AS `RelateId`,`a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatus`,`a`.`CustomerName` AS `CustomerName`,`d`.`ContractNumber` AS `ContractNumber`,`d`.`BorrowerName` AS `LinkMan`,`d`.`UserProName` AS `UserProName`,`d`.`OverdueDays` AS `OverdueDays`,json_unquote(json_extract(`f`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,cast(`d`.`CaseTime` as date) AS `CaseDate`,cast(`d`.`RetreatTime` as date) AS `RetreatDate`,`fn_GetReceiveDate`(`a`.`Id`) AS `ReceiveDate`,`fn_GetReceivePrice`(`a`.`Id`) AS `ReceivePrice`,`fn_GetReceiveIssue`(`a`.`Id`) AS `ReceiveIssue`,`fn_GetReceiveStatus`(`a`.`Id`) AS `ReceiveStatus`,`fn_GetReceiveStatusRemark`(`a`.`Id`) AS `ReceiveStatusRemark`,`fn_GetReceivePersonAssess`(`a`.`Id`) AS `PersonAssess`,`fn_GetReceiveProAssess`(`a`.`Id`) AS `ProAssess`,(case when ((`d`.`OverdueDays` <= 60) or (`d`.`OverdueDays` is null)) then '短账' when (`d`.`OverdueDays` > 60) then '长账' end) AS `Grade`,`a`.`ProName` AS `ProName`,`g`.`ServiceName` AS `ServiceName`,`g`.`ServiceCode` AS `ServiceCode`,`fn_GetReceiveRegistrationDate`(`a`.`Id`) AS `RegistrationDate`,`fn_GetReceiveAddRemark1`(`a`.`Id`) AS `AddRemark1`,`fn_GetReceiveAddRemark2`(`a`.`Id`) AS `AddRemark2`,`k1`.`FeeValue` AS `ReceiveAmounts`,`k2`.`FeeValue` AS `ReturnCountReward`,`k3`.`FeeValue` AS `ReturnPriceReward`,`m`.`Name` AS `ReturnedType`,`fn_afcGetReturnedType`(`a`.`Id`) AS `ReturnedType2`,`fn_afcGetApprovalStatusConcat`(`a`.`Id`) AS `ApprovalStatus`,`t5`.`FeeValue` AS `EntryAmount`,ifnull((select 1 from `tb_afcpaymentreport` `t6` where ((`t6`.`WorkOrderId` = `a`.`Id`) and (`t6`.`ApprovalStatus` in (1,2,3,4)) and (`t6`.`Deleted` = 0)) limit 1),0) AS `IfReport`,(select group_concat(`t7`.`PresentName` order by `t7`.`CreatedAt` DESC separator ';') from `tb_afcpaymentreport` `t7` where ((`t7`.`WorkOrderId` = `a`.`Id`) and (`t7`.`Deleted` = 0) and (`t7`.`ApprovalStatus` in (1,2,3,4)))) AS `PresentName`,(select cast(`t9`.`UpdatedAt` as datetime) from `tb_afcpaymentreport` `t9` where ((`t9`.`WorkOrderId` = `a`.`Id`) and (`t9`.`Deleted` = 0) and (`t9`.`ApprovalStatus` in (2,3,4))) order by (case `t9`.`ReturnedTypeCode` when 'ReturnType005' then 1 when 'ReturnType003' then 2 when 'ReturnType002' then 3 when 'ReturnType001' then 4 when 'ReturnType004' then 5 else 99 end) limit 1) AS `ApprovalTime`,(select cast(`t10`.`DoneAt` as datetime) from `tb_workflowinfo` `t10` where ((`t10`.`WorkOrderId` = `a`.`Id`) and (`t10`.`Deleted` = 0) and (`t10`.`StepName` = '质检') and (`t10`.`StepStatus` = 1)) limit 1) AS `AuditTime`,`l`.`SubjectNameSummary` AS `SubjectNameSummary`,`n`.`VisitorRole` AS `VisitorRole`,`fn_GetAfcRecievePromptMerits`(`a`.`Id`) AS `PromptMerits`,`fn_GetAfcRecieveSettleTime`(`a`.`Id`) AS `SettleTime`,`fn_GetAfcRecieveSettleRemark`(`a`.`Id`) AS `SettleRemark`,json_unquote(json_extract(`f`.`BussinessJson`,'$.IfGrant')) AS `IfGrant`,`d`.`ResPrincipal` AS `ResPrincipal`,`d`.`OverduePrincipal` AS `OverduePrincipal` from ((((((((((((`tb_workorderinfo` `a` join `tb_afcworkorderinfo` `b` on(((`a`.`Id` = `b`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderrelation` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0) and (`c`.`RelationType` = 1)))) left join `tb_afcworkfinanceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'ReceiveAmounts')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_worksubjectsummary` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `basic_datadictionary` `m` on(((`m`.`Code` = convert(json_unquote(json_extract(`f`.`BussinessJson`,'$.OrderReturnedTypeCode')) using utf8)) and (`m`.`Deleted` = 0)))) left join `tb_afcfeedetail` `t5` on(((`t5`.`WorkOrderId` = `a`.`Id`) and (`t5`.`PriceTypeCode` = 'RefundPrice') and (`t5`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0)))) where ((`a`.`ServiceProviderCode` = '1002') and (`a`.`Deleted` = 0))

vi_userworkphoneinfo

{
  "message": "\u89c6\u56fe vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

vi_riskworkorderinfo_other1

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other1 \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other1`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_riskworkorderinfo_other1` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`AddressTypeCode` in ('100','200','300','400')) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_accessoryinfo

{
  "message": "\u89c6\u56fe vi_accessoryinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryinfo` AS select `a`.`Id` AS `Id`,`d`.`CustomerSourceId` AS `CustomerSourceId`,`d`.`CustomerSourceName` AS `CustomerSourceName`,`d`.`CustomerId` AS `CustomerId`,`d`.`CustomerName` AS `CustomerName`,`d`.`ConfirmType` AS `ConfirmType`,`d`.`CustStoreId` AS `CustStoreId`,`d`.`CustStoreName` AS `CustStoreName`,`d`.`CustStoreCode` AS `CustStoreCode`,`a`.`IsMultiImg` AS `IsMultiImg`,`a`.`RemarkSource` AS `RemarkSource`,`d`.`Priority` AS `Priority`,`c`.`CustConfirmId` AS `CustConfirmId`,`c`.`NodeCode` AS `NodeCode`,`c`.`OrderType` AS `OrderType`,`c`.`RemindContent` AS `RemindContent`,`c`.`Provider` AS `Provider`,`c`.`BussinessTypeCode` AS `BussinessTypeCode`,`a`.`AccessoryName` AS `AccessoryName`,`a`.`IsBunding` AS `IsBunding`,`a`.`UploadTime` AS `UploadTime`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,json_unquote(json_extract(`e`.`ResoureJson`,'$.ResourceType')) AS `ResourceType`,`a`.`IsOnSite` AS `IsOnSite`,`a`.`IsWatermark` AS `IsWatermark`,`a`.`IsBundingAsset` AS `IsBundingAsset`,`a`.`IsUnusual` AS `IsUnusual`,`a`.`DeviceUniqueNo` AS `DeviceUniqueNo`,`e`.`ResourceClassName` AS `ResourceClassName` from ((((`basic_accessoryinfo` `a` join `basic_resourceitem` `b` on((`a`.`ResourceId` = `b`.`Id`))) join `basic_accessoryrule` `c` on((`a`.`RuleId` = `c`.`Id`))) join `basic_custconfirmrule` `d` on((`d`.`Id` = `c`.`CustConfirmId`))) left join `basic_accessoryresource` `e` on(((`a`.`AccessoryCode` = `e`.`Code`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`b`.`Deleted` = 0) and (`c`.`Deleted` = 0) and (`d`.`Deleted` = 0))

vi_chpworkorderdetail_test

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_workorderlistforafc

{
  "message": "\u89c6\u56fe vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_vhsworkorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`InstallTime` AS `RequiredTime`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`IsAppoint` AS `IsAppoint`,`g`.`ReceiverUserId` AS `ReceiverUserId`,`g`.`ReceiverUserName` AS `ReceiverUserName`,`g`.`ReceiverLoginName` AS `ReceiverLoginName`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h`.`ServiceCode` AS `ServiceCode`,`h`.`ServiceName` AS `ServiceName`,`j1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`j1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `j2`.`ReceiveState` end) AS `ReturnState`,`c`.`LastAppointTime` AS `RecentlyChangeTime`,`a`.`CreatedAt` AS `CreatedAt`,`k`.`ActualMortgagor` AS `ActualMortgagor`,`k`.`ActualHandleTime` AS `ActualHandleTime`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`g`.`ApprovalTime` AS `ApprovalTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from (((((((((((`tb_vhsworkorderinfo` `g` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `g`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `g`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `g`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `g`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_workorderinfo` `a` on(((`g`.`Id` = `a`.`Id`) and (`a`.`Deleted` = 0)))) left join `tb_workserviceinfo` `h` on(((`h`.`WorkOrderId` = `g`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `g`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j1` on(((`j1`.`WorkOrderId` = `a`.`Id`) and (`j1`.`ReceiveType` = 1) and (`j1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j2` on(((`j2`.`WorkOrderId` = `a`.`Id`) and (`j2`.`ReceiveType` = 2) and (`j2`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `k` on(((`k`.`Id` = `g`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) where (`g`.`Deleted` = 0)

vi_workorderlistforchp

{
  "message": "\u89c6\u56fe vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_qualityorderdetail

{
  "message": "\u89c6\u56fe vi_qualityorderdetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_qualityorderdetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_qualityorderdetail` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderTypeCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`b`.`UserName` AS `UserName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`c`.`CompleteTime` AS `CompleteTime`,`a`.`WorkStatus` AS `WorkStatusCode`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `WorkStatus`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',1),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',1)) AS `QualityCode`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',2),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',2)) AS `QualityName`,`s`.`AuditStatus` AS `AuditStatus`,`a`.`Remark` AS `Remark`,`a`.`InstallTime` AS `InstallTime`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,2) AS `BusinessTypeName`,json_unquote(json_extract(`e`.`BussinessJson`,'$.IsRelation')) AS `IsRelation`,json_unquote(json_extract(`e`.`BussinessJson`,'$.AuditContent')) AS `AuditContent` from ((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) join `tb_recordinfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `s` on(((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null) and exists(select 1 from `tb_workflowinfo` `d` where ((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`NextStepName` = '质检') and (`d`.`Deleted` = 0))))

vvi_workorderauditinfoforafc

{
  "message": "\u89c6\u56fe vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

vi_afcworkorderdetailforexport

{
  "message": "\u89c6\u56fe vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetail

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

vi_workorderlistforchp_audit

{
  "message": "\u89c6\u56fe vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

vi_workresourceinfo

{
  "message": "\u89c6\u56fe vi_workresourceinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workresourceinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workresourceinfo` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`GoodsDetailId` AS `GoodsDetailId`,`a`.`ResourceName` AS `ResourceName`,`a`.`ResourceId` AS `ResourceId`,`a`.`SourceType` AS `SourceType`,`a`.`RemindContent` AS `RemindContent`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,`a`.`Duration` AS `Duration`,`a`.`ResourceTag` AS `ResourceTag`,`a`.`CreatedById` AS `CreatedById`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`UpdateById` AS `UpdateById`,`a`.`UpdateAt` AS `UpdateAt`,`a`.`Deleted` AS `Deleted`,`a`.`ImageAddressUrl` AS `ImageAddressUrl`,`b`.`FileSource` AS `FileSource`,`a`.`ResourceClassName` AS `ResourceClassName` from (`tb_workresourceinfo` `a` join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_userarea

{
  "message": "\u89c6\u56fe vi_userarea \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_userarea`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_userarea` AS select `tb_userarea`.`UserName` AS `UserName`,`tb_userarea`.`LoginName` AS `LoginName`,`tb_userarea`.`AreaName` AS `AreaName`,`tb_userarea`.`Id` AS `Id`,`serviceordercenter`.`fn_GetDictNameByCode`(concat(left(`tb_userarea`.`AreaCode`,2),'0000')) AS `ProName`,`tb_userarea`.`AreaCode` AS `AreaCode` from `tb_userarea` where (`tb_userarea`.`Deleted` = 0)

vi_vhsworkedorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkedorderinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`i`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,(case `i`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,ifnull(`n`.`status`,1) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`g`.`ReceiverLoginName` AS `OperCode`,`g`.`ReceiverUserName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`k`.`ServiceCode` AS `ServiceCode`,`k`.`ServiceName` AS `ServiceName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`h2`.`ReceiveTime` AS `ReturnTime`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SupplementStatus')) AS `SupplementStatus`,`l`.`v_OutCardDate` AS `OutCardDate` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workserviceinfo` `k` on(((`k`.`WorkOrderId` = `a`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) left join (select `a`.`WorkOrderId` AS `WorkOrderId`,0 AS `status` from `tb_workfeeitem` `a` where ((`a`.`PayItemStatus` = 0) and (`a`.`Deleted` = 0)) group by `a`.`WorkOrderId`) `n` on((`n`.`WorkOrderId` = `a`.`Id`))) where (`a`.`Deleted` = 0)

vi_riskworkorderinfo

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,`i`.`TriggerTime`,ifnull(`n`.`RiskTime`,now())) AS `EffectiveSuccessfulTimeSub`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),ifnull(`n`.`RiskTime`,now())) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`o`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`d`.`Status` AS `Status`,`d`.`IsHandle` AS `IsHandle`,`d`.`TriggerTime` AS `TriggerTime`,`d`.`RiskType` AS `RiskType`,`d`.`IndicatorCode` AS `IndicatorCode`,`d`.`Id` AS `RiskStatusId`,`f`.`ReceiveState` AS `receiveState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`i`.`TriggerTime` AS `EffectiveSuccessfulTime`,`j`.`Privoder` AS `Privoder`,`b`.`ShortFourVin` AS `ShortFourVin`,`n`.`RiskTime` AS `RiskTime`,`a`.`InstallTime` AS `InstallTime`,`a`.`EffectiveSuccessfulTime` AS `OrderEffectiveSuccessfulTime`,json_unquote(json_extract(`p`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workriskstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0) and (`f`.`ReceiveType` = 1)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_riskdatatime` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0) and (`i`.`DataCode` = 'Data001')))) left join `tb_workserviceinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_riskworkorderinfo` `n` on(((`a`.`Id` = `n`.`WorkOrderId`) and (`n`.`Deleted` = 0) and (`n`.`IndicatorCode` = `d`.`IndicatorCode`) and (`n`.`TimeType` = 1)))) left join `tb_appointmentconcat` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` <> 9) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_workingorderinfo

{
  "message": "\u89c6\u56fe vi_workingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperId` AS `OperId`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_accessoryresource

{
  "message": "\u89c6\u56fe vi_accessoryresource \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryresource`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryresource` AS select `a`.`Id` AS `Id`,`a`.`Code` AS `Code`,`a`.`Name` AS `Name`,`a`.`Remark` AS `Remark`,`a`.`ResourceId` AS `resourceId`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`OrgCode` AS `OrgCode`,`a`.`ResoureJson` AS `ResoureJson`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`ResourceClassName` AS `ResourceClassName` from (`basic_accessoryresource` `a` left join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_vhsworkingorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`FN_GETCLOSESTATUSNAMEBYORDERID`(`a`.`Id`) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`g`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.IsCommercialVehicle')) AS `IsCommercialVehicle`,`j`.`v_IsRelateEtc` AS `IsRelateEtc`,`j`.`v_IfEtcRecord` AS `IfEtcRecord`,`h`.`ValueName` AS `VhsReShelf`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`j`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`j`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,`h1`.`ActualReceiveMethod` AS `ReceiveMethod`,`h2`.`ActualReceiveMethod` AS `ReturnMethod`,`j`.`v_OutCardDate` AS `OutCardDate`,json_unquote(json_extract(`j`.`BussinessJson`,'$.MaxOutCardDay')) AS `MaxOutCardDay`,json_unquote(json_extract(`j`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) left join `tb_worktaginfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0) and (`h`.`TypeCode` = 'VhsReShelf')))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workedorderinfo

{
  "message": "\u89c6\u56fe vi_workedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workedorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`d`.`InsertTime` AS `InsertTime`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatedinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderacceptinfo

{
  "message": "\u89c6\u56fe vi_workorderacceptinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderacceptinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderacceptinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,1) AS `OperCode`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,2) AS `OperName`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,3) AS `DirectOrderAccept`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,4) AS `InsertTime`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderrecheckdetailforexport

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

vi_workorderforsearch

{
  "message": "\u89c6\u56fe vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderinfo

{
  "message": "\u89c6\u56fe vi_workorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`c`.`FirstAppointTime` AS `FirstAppointTime`,`c`.`LastRemark` AS `LastRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`IsUrgent` AS `IsUrgent`,`b`.`ShortVin` AS `ShortVin`,`d`.`TypeCode` AS `ContractNumberCode`,`d`.`Value` AS `ContractNumber`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`e`.`CompleteTime` AS `CompleteTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`f`.`IfUninstall` AS `IfUninstall`,`f`.`IsSwitch` AS `IsSwitch`,`f`.`IsMixPreOrder` AS `IsMixPreOrder`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`b`.`ShortFourVin` AS `ShortFourVin`,`f`.`TypeStatus` AS `TypeStatus`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`g`.`ServiceId` AS `ServiceId`,`g`.`ServiceCode` AS `ServiceCode`,`g`.`ServiceName` AS `ServiceName`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`i`.`v_CompleteAging` AS `CompleteAging`,`i`.`v_RescScreenshotAging` AS `RescScreenshotAging`,`i`.`v_RescScreenshotResult` AS `RescScreenshotResult`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_custcolumn` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`TypeCode` = '1') and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workorderstatus` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderfilmdetail_2

{
  "message": "\u89c6\u56fe vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

vi_custconfirmrule

{
  "message": "\u89c6\u56fe vi_custconfirmrule \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_custconfirmrule`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_custconfirmrule` AS select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`n`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' when 5 then '系统自动质检配置' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,`m`.`NodeName` AS `NodeName`,`n`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`RuleJson` AS `RuleJson` from ((`basic_custconfirmrule` `a` left join `basic_accessoryrule` `m` on(((`a`.`Id` = `m`.`CustConfirmId`) and (`m`.`Deleted` = 0)))) left join `basic_ordertypeinfo` `n` on(((`n`.`TypeCode` = `m`.`OrderType`) and (`n`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ConfirmType` <> 3)) group by `a`.`Id` union all select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`p`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,NULL AS `NodeName`,`p`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,NULL AS `RuleJson` from ((`basic_custconfirmrule` `a` join `basic_repetitivevin` `o` on(((`a`.`Id` = `o`.`CustConfirmId`) and (`o`.`Deleted` = 0)))) join `basic_ordertypeinfo` `p` on(((`p`.`TypeCode` = `o`.`OrderType`) and (`p`.`Deleted` = 0)))) where (`a`.`Deleted` = 0) group by `a`.`Id`

vi_tireworkorderinfo

{
  "message": "\u89c6\u56fe vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

vi_workorderinfo_mobile

{
  "message": "\u89c6\u56fe vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_riskworkorderinfo_other

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo_other` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` FORCE INDEX (`NON-CreatedAt`) left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderusedcarcheck2

{
  "message": "\u89c6\u56fe vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

vi_workorderrecheckdetail

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetial

{
  "message": "\u89c6\u56fe vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

vi_afcreceiverecorddetail

{
  "message": "\u89c6\u56fe vi_afcreceiverecorddetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_afcreceiverecorddetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcreceiverecorddetail` AS select `c`.`RelateId` AS `RelateId`,`a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatus`,`a`.`CustomerName` AS `CustomerName`,`d`.`ContractNumber` AS `ContractNumber`,`d`.`BorrowerName` AS `LinkMan`,`d`.`UserProName` AS `UserProName`,`d`.`OverdueDays` AS `OverdueDays`,json_unquote(json_extract(`f`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,cast(`d`.`CaseTime` as date) AS `CaseDate`,cast(`d`.`RetreatTime` as date) AS `RetreatDate`,`fn_GetReceiveDate`(`a`.`Id`) AS `ReceiveDate`,`fn_GetReceivePrice`(`a`.`Id`) AS `ReceivePrice`,`fn_GetReceiveIssue`(`a`.`Id`) AS `ReceiveIssue`,`fn_GetReceiveStatus`(`a`.`Id`) AS `ReceiveStatus`,`fn_GetReceiveStatusRemark`(`a`.`Id`) AS `ReceiveStatusRemark`,`fn_GetReceivePersonAssess`(`a`.`Id`) AS `PersonAssess`,`fn_GetReceiveProAssess`(`a`.`Id`) AS `ProAssess`,(case when ((`d`.`OverdueDays` <= 60) or (`d`.`OverdueDays` is null)) then '短账' when (`d`.`OverdueDays` > 60) then '长账' end) AS `Grade`,`a`.`ProName` AS `ProName`,`g`.`ServiceName` AS `ServiceName`,`g`.`ServiceCode` AS `ServiceCode`,`fn_GetReceiveRegistrationDate`(`a`.`Id`) AS `RegistrationDate`,`fn_GetReceiveAddRemark1`(`a`.`Id`) AS `AddRemark1`,`fn_GetReceiveAddRemark2`(`a`.`Id`) AS `AddRemark2`,`k1`.`FeeValue` AS `ReceiveAmounts`,`k2`.`FeeValue` AS `ReturnCountReward`,`k3`.`FeeValue` AS `ReturnPriceReward`,`m`.`Name` AS `ReturnedType`,`fn_afcGetReturnedType`(`a`.`Id`) AS `ReturnedType2`,`fn_afcGetApprovalStatusConcat`(`a`.`Id`) AS `ApprovalStatus`,`t5`.`FeeValue` AS `EntryAmount`,ifnull((select 1 from `tb_afcpaymentreport` `t6` where ((`t6`.`WorkOrderId` = `a`.`Id`) and (`t6`.`ApprovalStatus` in (1,2,3,4)) and (`t6`.`Deleted` = 0)) limit 1),0) AS `IfReport`,(select group_concat(`t7`.`PresentName` order by `t7`.`CreatedAt` DESC separator ';') from `tb_afcpaymentreport` `t7` where ((`t7`.`WorkOrderId` = `a`.`Id`) and (`t7`.`Deleted` = 0) and (`t7`.`ApprovalStatus` in (1,2,3,4)))) AS `PresentName`,(select cast(`t9`.`UpdatedAt` as datetime) from `tb_afcpaymentreport` `t9` where ((`t9`.`WorkOrderId` = `a`.`Id`) and (`t9`.`Deleted` = 0) and (`t9`.`ApprovalStatus` in (2,3,4))) order by (case `t9`.`ReturnedTypeCode` when 'ReturnType005' then 1 when 'ReturnType003' then 2 when 'ReturnType002' then 3 when 'ReturnType001' then 4 when 'ReturnType004' then 5 else 99 end) limit 1) AS `ApprovalTime`,(select cast(`t10`.`DoneAt` as datetime) from `tb_workflowinfo` `t10` where ((`t10`.`WorkOrderId` = `a`.`Id`) and (`t10`.`Deleted` = 0) and (`t10`.`StepName` = '质检') and (`t10`.`StepStatus` = 1)) limit 1) AS `AuditTime`,`l`.`SubjectNameSummary` AS `SubjectNameSummary`,`n`.`VisitorRole` AS `VisitorRole`,`fn_GetAfcRecievePromptMerits`(`a`.`Id`) AS `PromptMerits`,`fn_GetAfcRecieveSettleTime`(`a`.`Id`) AS `SettleTime`,`fn_GetAfcRecieveSettleRemark`(`a`.`Id`) AS `SettleRemark`,json_unquote(json_extract(`f`.`BussinessJson`,'$.IfGrant')) AS `IfGrant`,`d`.`ResPrincipal` AS `ResPrincipal`,`d`.`OverduePrincipal` AS `OverduePrincipal` from ((((((((((((`tb_workorderinfo` `a` join `tb_afcworkorderinfo` `b` on(((`a`.`Id` = `b`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderrelation` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0) and (`c`.`RelationType` = 1)))) left join `tb_afcworkfinanceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'ReceiveAmounts')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_worksubjectsummary` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `basic_datadictionary` `m` on(((`m`.`Code` = convert(json_unquote(json_extract(`f`.`BussinessJson`,'$.OrderReturnedTypeCode')) using utf8)) and (`m`.`Deleted` = 0)))) left join `tb_afcfeedetail` `t5` on(((`t5`.`WorkOrderId` = `a`.`Id`) and (`t5`.`PriceTypeCode` = 'RefundPrice') and (`t5`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0)))) where ((`a`.`ServiceProviderCode` = '1002') and (`a`.`Deleted` = 0))

vi_userworkphoneinfo

{
  "message": "\u89c6\u56fe vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

vi_riskworkorderinfo_other1

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other1 \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other1`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_riskworkorderinfo_other1` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`AddressTypeCode` in ('100','200','300','400')) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_accessoryinfo

{
  "message": "\u89c6\u56fe vi_accessoryinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryinfo` AS select `a`.`Id` AS `Id`,`d`.`CustomerSourceId` AS `CustomerSourceId`,`d`.`CustomerSourceName` AS `CustomerSourceName`,`d`.`CustomerId` AS `CustomerId`,`d`.`CustomerName` AS `CustomerName`,`d`.`ConfirmType` AS `ConfirmType`,`d`.`CustStoreId` AS `CustStoreId`,`d`.`CustStoreName` AS `CustStoreName`,`d`.`CustStoreCode` AS `CustStoreCode`,`a`.`IsMultiImg` AS `IsMultiImg`,`a`.`RemarkSource` AS `RemarkSource`,`d`.`Priority` AS `Priority`,`c`.`CustConfirmId` AS `CustConfirmId`,`c`.`NodeCode` AS `NodeCode`,`c`.`OrderType` AS `OrderType`,`c`.`RemindContent` AS `RemindContent`,`c`.`Provider` AS `Provider`,`c`.`BussinessTypeCode` AS `BussinessTypeCode`,`a`.`AccessoryName` AS `AccessoryName`,`a`.`IsBunding` AS `IsBunding`,`a`.`UploadTime` AS `UploadTime`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,json_unquote(json_extract(`e`.`ResoureJson`,'$.ResourceType')) AS `ResourceType`,`a`.`IsOnSite` AS `IsOnSite`,`a`.`IsWatermark` AS `IsWatermark`,`a`.`IsBundingAsset` AS `IsBundingAsset`,`a`.`IsUnusual` AS `IsUnusual`,`a`.`DeviceUniqueNo` AS `DeviceUniqueNo`,`e`.`ResourceClassName` AS `ResourceClassName` from ((((`basic_accessoryinfo` `a` join `basic_resourceitem` `b` on((`a`.`ResourceId` = `b`.`Id`))) join `basic_accessoryrule` `c` on((`a`.`RuleId` = `c`.`Id`))) join `basic_custconfirmrule` `d` on((`d`.`Id` = `c`.`CustConfirmId`))) left join `basic_accessoryresource` `e` on(((`a`.`AccessoryCode` = `e`.`Code`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`b`.`Deleted` = 0) and (`c`.`Deleted` = 0) and (`d`.`Deleted` = 0))

vi_chpworkorderdetail_test

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_workorderlistforafc

{
  "message": "\u89c6\u56fe vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_vhsworkorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`InstallTime` AS `RequiredTime`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`IsAppoint` AS `IsAppoint`,`g`.`ReceiverUserId` AS `ReceiverUserId`,`g`.`ReceiverUserName` AS `ReceiverUserName`,`g`.`ReceiverLoginName` AS `ReceiverLoginName`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h`.`ServiceCode` AS `ServiceCode`,`h`.`ServiceName` AS `ServiceName`,`j1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`j1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `j2`.`ReceiveState` end) AS `ReturnState`,`c`.`LastAppointTime` AS `RecentlyChangeTime`,`a`.`CreatedAt` AS `CreatedAt`,`k`.`ActualMortgagor` AS `ActualMortgagor`,`k`.`ActualHandleTime` AS `ActualHandleTime`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`g`.`ApprovalTime` AS `ApprovalTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from (((((((((((`tb_vhsworkorderinfo` `g` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `g`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `g`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `g`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `g`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_workorderinfo` `a` on(((`g`.`Id` = `a`.`Id`) and (`a`.`Deleted` = 0)))) left join `tb_workserviceinfo` `h` on(((`h`.`WorkOrderId` = `g`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `g`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j1` on(((`j1`.`WorkOrderId` = `a`.`Id`) and (`j1`.`ReceiveType` = 1) and (`j1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j2` on(((`j2`.`WorkOrderId` = `a`.`Id`) and (`j2`.`ReceiveType` = 2) and (`j2`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `k` on(((`k`.`Id` = `g`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) where (`g`.`Deleted` = 0)

vi_workorderlistforchp

{
  "message": "\u89c6\u56fe vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_qualityorderdetail

{
  "message": "\u89c6\u56fe vi_qualityorderdetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_qualityorderdetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_qualityorderdetail` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderTypeCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`b`.`UserName` AS `UserName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`c`.`CompleteTime` AS `CompleteTime`,`a`.`WorkStatus` AS `WorkStatusCode`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `WorkStatus`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',1),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',1)) AS `QualityCode`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',2),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',2)) AS `QualityName`,`s`.`AuditStatus` AS `AuditStatus`,`a`.`Remark` AS `Remark`,`a`.`InstallTime` AS `InstallTime`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,2) AS `BusinessTypeName`,json_unquote(json_extract(`e`.`BussinessJson`,'$.IsRelation')) AS `IsRelation`,json_unquote(json_extract(`e`.`BussinessJson`,'$.AuditContent')) AS `AuditContent` from ((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) join `tb_recordinfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `s` on(((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null) and exists(select 1 from `tb_workflowinfo` `d` where ((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`NextStepName` = '质检') and (`d`.`Deleted` = 0))))

vvi_workorderauditinfoforafc

{
  "message": "\u89c6\u56fe vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

vi_afcworkorderdetailforexport

{
  "message": "\u89c6\u56fe vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetail

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

vi_workorderlistforchp_audit

{
  "message": "\u89c6\u56fe vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

vi_workresourceinfo

{
  "message": "\u89c6\u56fe vi_workresourceinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workresourceinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workresourceinfo` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`GoodsDetailId` AS `GoodsDetailId`,`a`.`ResourceName` AS `ResourceName`,`a`.`ResourceId` AS `ResourceId`,`a`.`SourceType` AS `SourceType`,`a`.`RemindContent` AS `RemindContent`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,`a`.`Duration` AS `Duration`,`a`.`ResourceTag` AS `ResourceTag`,`a`.`CreatedById` AS `CreatedById`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`UpdateById` AS `UpdateById`,`a`.`UpdateAt` AS `UpdateAt`,`a`.`Deleted` AS `Deleted`,`a`.`ImageAddressUrl` AS `ImageAddressUrl`,`b`.`FileSource` AS `FileSource`,`a`.`ResourceClassName` AS `ResourceClassName` from (`tb_workresourceinfo` `a` join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_userarea

{
  "message": "\u89c6\u56fe vi_userarea \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_userarea`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_userarea` AS select `tb_userarea`.`UserName` AS `UserName`,`tb_userarea`.`LoginName` AS `LoginName`,`tb_userarea`.`AreaName` AS `AreaName`,`tb_userarea`.`Id` AS `Id`,`serviceordercenter`.`fn_GetDictNameByCode`(concat(left(`tb_userarea`.`AreaCode`,2),'0000')) AS `ProName`,`tb_userarea`.`AreaCode` AS `AreaCode` from `tb_userarea` where (`tb_userarea`.`Deleted` = 0)

vi_vhsworkedorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkedorderinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`i`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,(case `i`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,ifnull(`n`.`status`,1) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`g`.`ReceiverLoginName` AS `OperCode`,`g`.`ReceiverUserName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`k`.`ServiceCode` AS `ServiceCode`,`k`.`ServiceName` AS `ServiceName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`h2`.`ReceiveTime` AS `ReturnTime`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SupplementStatus')) AS `SupplementStatus`,`l`.`v_OutCardDate` AS `OutCardDate` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workserviceinfo` `k` on(((`k`.`WorkOrderId` = `a`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) left join (select `a`.`WorkOrderId` AS `WorkOrderId`,0 AS `status` from `tb_workfeeitem` `a` where ((`a`.`PayItemStatus` = 0) and (`a`.`Deleted` = 0)) group by `a`.`WorkOrderId`) `n` on((`n`.`WorkOrderId` = `a`.`Id`))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetial

{
  "message": "\u89c6\u56fe vi_chpworkorderdetial \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetial` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `fn_GetOrderTypeByCode(a.OrderType)`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '创建工单') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (2,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(`w1`.`Remark` order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 3)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,json_unquote(json_extract(`g1`.`ExtraJson`,'$.SettleType')) AS `SettleType`,`f1`.`PayTypeName` AS `PayTypeName`,(select `r1`.`Remark` from `tb_remarkinfo` `r1` where ((`r1`.`Type` = 6) and (`r1`.`WorkOrderId` = `a`.`Id`) and (`r1`.`Deleted` = 0))) AS `ChangeRemark`,`f1`.`PayAblePrice` AS `PayAblePrice`,(case `g1`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `PaySource`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeePayTypeName')) AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,(select `g2`.`GoodsName` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsName`,(select `g2`.`GoodsPrice` from `tb_workgoodsinfo` `g2` where ((`a`.`Id` = `g2`.`WorkOrderId`) and (`g2`.`GoodsType` = 5) and (`g2`.`Deleted` = 0))) AS `ServiceGoodsPrice`,json_unquote(json_extract(`g`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`g`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`g`.`BrandName` AS `BrandName`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,`h`.`MaterialNo` AS `MaterialNo`,`h`.`MaterialType` AS `MaterialType`,(select `h2`.`MaterialType` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialType`,(select `h2`.`MaterialNo` from `tb_workgoodsdetail` `h2` where ((`g`.`Id` = `h2`.`WorkGoodsId`) and (`h2`.`Deleted` = 0) and (`h2`.`MaterialTypeCode` like '0301%'))) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAccessoriesWarehourse')) AS `chpAccessoriesWarehourse`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆硬线'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','国标电缆软线'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','套管'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','漏保'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','空开盒'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesType'),'one','充电桩立柱'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableMeterMarker')) AS `chpCableMeterMarker`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCableBrandSpec')) AS `chpCableBrandSpec`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLeakageInsuranceModel')) AS `chpLeakageInsuranceModel`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g1` on(((`f1`.`Id` = `g1`.`FeeInfoId`) and (`g1`.`FeePurpose` = '勘测费用') and (`g1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where (`a`.`Deleted` = 0)

vi_vhsworkorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`InstallTime` AS `RequiredTime`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`IsAppoint` AS `IsAppoint`,`g`.`ReceiverUserId` AS `ReceiverUserId`,`g`.`ReceiverUserName` AS `ReceiverUserName`,`g`.`ReceiverLoginName` AS `ReceiverLoginName`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h`.`ServiceCode` AS `ServiceCode`,`h`.`ServiceName` AS `ServiceName`,`j1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`j1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `j2`.`ReceiveState` end) AS `ReturnState`,`c`.`LastAppointTime` AS `RecentlyChangeTime`,`a`.`CreatedAt` AS `CreatedAt`,`k`.`ActualMortgagor` AS `ActualMortgagor`,`k`.`ActualHandleTime` AS `ActualHandleTime`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`g`.`ApprovalTime` AS `ApprovalTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from (((((((((((`tb_vhsworkorderinfo` `g` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `g`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `g`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `g`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `g`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_workorderinfo` `a` on(((`g`.`Id` = `a`.`Id`) and (`a`.`Deleted` = 0)))) left join `tb_workserviceinfo` `h` on(((`h`.`WorkOrderId` = `g`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `g`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j1` on(((`j1`.`WorkOrderId` = `a`.`Id`) and (`j1`.`ReceiveType` = 1) and (`j1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `j2` on(((`j2`.`WorkOrderId` = `a`.`Id`) and (`j2`.`ReceiveType` = 2) and (`j2`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `k` on(((`k`.`Id` = `g`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) where (`g`.`Deleted` = 0)

vi_qualityorderdetail

{
  "message": "\u89c6\u56fe vi_qualityorderdetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_qualityorderdetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_qualityorderdetail` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderTypeCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`b`.`UserName` AS `UserName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`c`.`CompleteTime` AS `CompleteTime`,`a`.`WorkStatus` AS `WorkStatusCode`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `WorkStatus`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',1),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',1)) AS `QualityCode`,ifnull(`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检',2),`fn_GetWorkFlowPersonInfo`(`a`.`Id`,'质检不通过',2)) AS `QualityName`,`s`.`AuditStatus` AS `AuditStatus`,`a`.`Remark` AS `Remark`,`a`.`InstallTime` AS `InstallTime`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`a`.`Id`,2) AS `BusinessTypeName`,json_unquote(json_extract(`e`.`BussinessJson`,'$.IsRelation')) AS `IsRelation`,json_unquote(json_extract(`e`.`BussinessJson`,'$.AuditContent')) AS `AuditContent` from ((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) join `tb_recordinfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `s` on(((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null) and exists(select 1 from `tb_workflowinfo` `d` where ((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`NextStepName` = '质检') and (`d`.`Deleted` = 0))))

vi_userarea

{
  "message": "\u89c6\u56fe vi_userarea \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_userarea`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_userarea` AS select `tb_userarea`.`UserName` AS `UserName`,`tb_userarea`.`LoginName` AS `LoginName`,`tb_userarea`.`AreaName` AS `AreaName`,`tb_userarea`.`Id` AS `Id`,`serviceordercenter`.`fn_GetDictNameByCode`(concat(left(`tb_userarea`.`AreaCode`,2),'0000')) AS `ProName`,`tb_userarea`.`AreaCode` AS `AreaCode` from `tb_userarea` where (`tb_userarea`.`Deleted` = 0)

vi_vhsworkingorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) AS `OrderTypeName`,`FN_GETSTATUSTYPEBYCODE`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`FN_GETCLOSESTATUSNAMEBYORDERID`(`a`.`Id`) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,`fn_GetVhsPayStatusById`(`a`.`Id`) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`g`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.IsCommercialVehicle')) AS `IsCommercialVehicle`,`j`.`v_IsRelateEtc` AS `IsRelateEtc`,`j`.`v_IfEtcRecord` AS `IfEtcRecord`,`h`.`ValueName` AS `VhsReShelf`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`j`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`j`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,`h1`.`ActualReceiveMethod` AS `ReceiveMethod`,`h2`.`ActualReceiveMethod` AS `ReturnMethod`,`j`.`v_OutCardDate` AS `OutCardDate`,json_unquote(json_extract(`j`.`BussinessJson`,'$.MaxOutCardDay')) AS `MaxOutCardDay`,json_unquote(json_extract(`j`.`BussinessJson`,'$.AdmissibilityStatus')) AS `AdmissibilityStatus` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) left join `tb_worktaginfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0) and (`h`.`TypeCode` = 'VhsReShelf')))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderinfo

{
  "message": "\u89c6\u56fe vi_workorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`c`.`FirstAppointTime` AS `FirstAppointTime`,`c`.`LastRemark` AS `LastRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`IsUrgent` AS `IsUrgent`,`b`.`ShortVin` AS `ShortVin`,`d`.`TypeCode` AS `ContractNumberCode`,`d`.`Value` AS `ContractNumber`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`e`.`CompleteTime` AS `CompleteTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`f`.`IfUninstall` AS `IfUninstall`,`f`.`IsSwitch` AS `IsSwitch`,`f`.`IsMixPreOrder` AS `IsMixPreOrder`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`b`.`ShortFourVin` AS `ShortFourVin`,`f`.`TypeStatus` AS `TypeStatus`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`g`.`ServiceId` AS `ServiceId`,`g`.`ServiceCode` AS `ServiceCode`,`g`.`ServiceName` AS `ServiceName`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`i`.`v_CompleteAging` AS `CompleteAging`,`i`.`v_RescScreenshotAging` AS `RescScreenshotAging`,`i`.`v_RescScreenshotResult` AS `RescScreenshotResult`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_custcolumn` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`TypeCode` = '1') and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workorderstatus` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_accessoryresource

{
  "message": "\u89c6\u56fe vi_accessoryresource \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryresource`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryresource` AS select `a`.`Id` AS `Id`,`a`.`Code` AS `Code`,`a`.`Name` AS `Name`,`a`.`Remark` AS `Remark`,`a`.`ResourceId` AS `resourceId`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`OrgCode` AS `OrgCode`,`a`.`ResoureJson` AS `ResoureJson`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`ResourceClassName` AS `ResourceClassName` from (`basic_accessoryresource` `a` left join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_custconfirmrule

{
  "message": "\u89c6\u56fe vi_custconfirmrule \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_custconfirmrule`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_custconfirmrule` AS select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`n`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' when 5 then '系统自动质检配置' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,`m`.`NodeName` AS `NodeName`,`n`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`RuleJson` AS `RuleJson` from ((`basic_custconfirmrule` `a` left join `basic_accessoryrule` `m` on(((`a`.`Id` = `m`.`CustConfirmId`) and (`m`.`Deleted` = 0)))) left join `basic_ordertypeinfo` `n` on(((`n`.`TypeCode` = `m`.`OrderType`) and (`n`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ConfirmType` <> 3)) group by `a`.`Id` union all select `a`.`Id` AS `id`,`a`.`CustomerSourceId` AS `CustomerSourceId`,`a`.`CustomerSourceName` AS `CustomerSourceName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,group_concat(`p`.`TypeName` separator ',') AS `OrderTypeName`,`a`.`ConfirmType` AS `ConfirmType`,(case `a`.`ConfirmType` when 0 then '附件要求' when 1 then '字段配置' when 2 then '安装位置' when 3 then '下单信息重复验证' when 4 then '改约时间设定' end) AS `ConfirmTypeName`,`a`.`Priority` AS `PriorityCode`,(case `a`.`Priority` when 1 then '低' when 2 then '中' when 3 then '高' end) AS `Priority`,NULL AS `NodeName`,`p`.`TypeCode` AS `TypeCode`,`a`.`CreatedAt` AS `CreatedAt`,NULL AS `RuleJson` from ((`basic_custconfirmrule` `a` join `basic_repetitivevin` `o` on(((`a`.`Id` = `o`.`CustConfirmId`) and (`o`.`Deleted` = 0)))) join `basic_ordertypeinfo` `p` on(((`p`.`TypeCode` = `o`.`OrderType`) and (`p`.`Deleted` = 0)))) where (`a`.`Deleted` = 0) group by `a`.`Id`

vi_workorderinfo_mobile

{
  "message": "\u89c6\u56fe vi_workorderinfo_mobile \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderinfo_mobile` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`ServiceCode` AS `ServiceCode`,`d`.`ServiceName` AS `ServiceName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workserviceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_riskworkorderinfo

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,`i`.`TriggerTime`,ifnull(`n`.`RiskTime`,now())) AS `EffectiveSuccessfulTimeSub`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),ifnull(`n`.`RiskTime`,now())) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`o`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`d`.`Status` AS `Status`,`d`.`IsHandle` AS `IsHandle`,`d`.`TriggerTime` AS `TriggerTime`,`d`.`RiskType` AS `RiskType`,`d`.`IndicatorCode` AS `IndicatorCode`,`d`.`Id` AS `RiskStatusId`,`f`.`ReceiveState` AS `receiveState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`i`.`TriggerTime` AS `EffectiveSuccessfulTime`,`j`.`Privoder` AS `Privoder`,`b`.`ShortFourVin` AS `ShortFourVin`,`n`.`RiskTime` AS `RiskTime`,`a`.`InstallTime` AS `InstallTime`,`a`.`EffectiveSuccessfulTime` AS `OrderEffectiveSuccessfulTime`,json_unquote(json_extract(`p`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workriskstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0) and (`f`.`ReceiveType` = 1)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_riskdatatime` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0) and (`i`.`DataCode` = 'Data001')))) left join `tb_workserviceinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_riskworkorderinfo` `n` on(((`a`.`Id` = `n`.`WorkOrderId`) and (`n`.`Deleted` = 0) and (`n`.`IndicatorCode` = `d`.`IndicatorCode`) and (`n`.`TimeType` = 1)))) left join `tb_appointmentconcat` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` <> 9) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_workorderlistforafc

{
  "message": "\u89c6\u56fe vi_workorderlistforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`f`.`SubjectCode` AS `subjectcode`,`f`.`SubjectName` AS `subjectname`,`a`.`RequiredTime` AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`w9`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,`d`.`v_afcAuditPassTime` AS `auditaccepttime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`w9`.`FirstDistributeTime` AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,ifnull(`w11`.`LastRecordTime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8)) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`w5`.`ContractNumber` AS `contractnumber`,`w9`.`IntervieweeType` AS `intervieweetype`,(case `w9`.`IntervieweeType` when 0 then '借款人' when 1 then '共借人' when 2 then '担保人' when 3 then '亲友' when 4 then '配偶' when 5 then '承租人' when 6 then '实际用车人' when 7 then '申请人' when 8 then '其它' else `w9`.`IntervieweeType` end) AS `intervieweetypename`,`w9`.`IntervieweeName` AS `intervieweename`,`w10`.`AddressTypeCode` AS `addresstypecode`,(case `w10`.`AddressTypeCode` when 200 then '户籍地址' when 201 then '居住地址' when 202 then '单位地址' when 203 then '其他地址(居住)' when 204 then '其他地址(单位)' when 205 then '房产地址' when 206 then '其他地址' else `w10`.`AddressTypeCode` end) AS `addresstypename`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime`,`w6`.`UserName` AS `username`,`w6`.`VinNumber` AS `vinnumber`,`w6`.`PlateNumber` AS `platenumber`,`w6`.`CarFullName` AS `carfullname`,`w5`.`BorrowerName` AS `borrowername`,`w5`.`LinkPhone` AS `linkphone`,`w5`.`CaseTime` AS `casetime`,`w5`.`RetreatTime` AS `retreattime`,`w10`.`LocationLat` AS `locationlat`,`w10`.`LocationLng` AS `locationlng`,`w9`.`PaymentEnable` AS `paymentenable`,`a`.`UpdatedAt` AS `updatedat`,`w12`.`AuditTime` AS `audittime`,`d`.`appointTime` AS `appointtime`,`d`.`v_LastNegotiatorTime` AS `lastnegotiatortime`,`d`.`v_FollowFrequency` AS `followfrequency`,`d`.`v_ReturnedTypeCode` AS `returnedtypecode`,`d`.`v_IfRemove` AS `ifremove`,`d`.`v_FollowFrequencyType` AS `followfrequencytype`,`d`.`v_AfcCompleteType` AS `afcCompleteType`,`d`.`v_ReportDeadline` AS `reportDeadline`,`d`.`v_UnFollowDays` AS `unFollowDays`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),1) AS `AccomFeeApplyTime`,`fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) AS `AccomFeeAuditStatus`,if((`w13`.`Id` is null),0,1) AS `IsAccomSign`,(select `g`.`SignTime` from `tb_worksignininfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`SignType` = 2)) order by `g`.`SignTime` desc limit 1) AS `ArrivalSignTime`,`d`.`v_OrderColor` AS `orderColor`,`w9`.`CustomerBriefName` AS `CustomerBriefName`,json_unquote(json_extract(`d`.`BussinessJson`,'$.afcRejectReason')) AS `afcRejectReason`,if((`a`.`RequiredTime` <= date_format(now(),'%Y-%m-%d 23:59:59')),true,false) AS `overTimeTag`,`d`.`v_SecondVisitStatus` AS `SecondVisitStatus`,`d`.`v_SecondVisitTime` AS `SecondVisitTime`,`d`.`v_ToBeAuditTag` AS `ToBeAuditTag` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) left join `tb_workcarinfo` `w6` on(((`w6`.`WorkOrderId` = `a`.`Id`) and (`w6`.`Deleted` = 0)))) join `tb_workaddressinfo` `w10` on(((`a`.`Id` = `w10`.`WorkOrderId`) and (`w10`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `w11` on(((`a`.`Id` = `w11`.`WorkOrderId`) and (`w11`.`Deleted` = 0)))) left join `tb_auditinfo` `w12` on(((`w12`.`WorkOrderId` = `a`.`Id`) and (`w12`.`Deleted` = 0)))) left join `tb_worksignininfo` `w13` on(((`a`.`Id` = `w13`.`WorkOrderId`) and (`w13`.`SignType` = 5) and (`w13`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workorderrecheckdetail

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetail` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckContent` AS `RecheckContent`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`AppCode` AS `AppCode`,`b`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`b`.`OrderType`) AS `OrderTypeName`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,`c`.`UserName` AS `UserName`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`b`.`WorkStatus` AS `WorkStatusCode`,`b`.`Remark` AS `Remark`,`d`.`CompleteTime` AS `CompleteTime`,`b`.`ServiceProviderCode` AS `ServiceProviderCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,1) AS `BusinessTypeCode`,`fn_GetCarBussinessTypeById`(`b`.`Id`,2) AS `BusinessTypeName` from (((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_riskworkorderinfo_other

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_riskworkorderinfo_other` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` FORCE INDEX (`NON-CreatedAt`) left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_userworkphoneinfo

{
  "message": "\u89c6\u56fe vi_userworkphoneinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_userworkphoneinfo` AS select `a`.`Id` AS `PhoneInfoId`,`a`.`UserName` AS `UserName`,`a`.`LoginName` AS `LoginName`,`a`.`UserTel` AS `UserTel`,`a`.`DataStatus` AS `DataStatus`,`a`.`DataSource` AS `DataSource`,`a`.`DataType` AS `DataType`,`b`.`ConnectTime` AS `ConnectTime`,`b`.`ConnectType` AS `ConnectType`,`b`.`ConnectStatus` AS `ConnectStatus`,`b`.`ConnectInfo` AS `ConnectInfo`,`a`.`CustomerName` AS `CustomerName`,`b`.`CreatedAt` AS `CreatedAt`,`a`.`DateMatedAt` AS `DateMatedAt`,`a`.`CustomerTel` AS `CustomerTel`,`e2`.`WxCode` AS `CustomerWxCode`,`d`.`ProCode` AS `ProCode`,`d`.`CityCode` AS `CityCode`,`d`.`AreaCode` AS `AreaCode`,`a`.`UserRole` AS `UserRole`,`b`.`Url` AS `Url`,`b`.`DataInfo` AS `DataInfo`,`e1`.`WxCode` AS `UserWxCode`,`e2`.`WxName` AS `CustomerWxName`,`a`.`WxRelationType` AS `WxRelationType`,`a`.`FirstConnectTime` AS `FirstConnectTime`,`a`.`LastConnectTime` AS `LastConnectTime`,`b`.`RecordDay` AS `RecordDay`,`b`.`RecordTime` AS `RecordTime`,`a`.`UserWxId` AS `UserWxId`,`a`.`CustomerWxId` AS `CustomerWxId` from (((((`tb_userworkphoneinfo` `a` left join `tb_userworkphonedetail` `b` on(((`a`.`Id` = `b`.`PhoneInfoId`) and (`b`.`Deleted` = 0)))) left join `tb_userinfo` `c` on(((convert(`a`.`LoginName` using utf8mb4) = `c`.`LoginName`) and (`c`.`TeamCode` = '10020001') and (`c`.`Deleted` = 0)))) left join `tb_userdetail` `d` on((`c`.`Id` = `d`.`Id`))) left join `tb_wxuserinfo` `e1` on(((`a`.`UserWxId` = `e1`.`WxId`) and (`e1`.`Deleted` = 0) and (`a`.`DataSource` = `e1`.`DataSource`)))) left join `tb_wxuserinfo` `e2` on(((`a`.`CustomerWxId` = `e2`.`WxId`) and (`e2`.`Deleted` = 0) and (`a`.`DataSource` = `e2`.`DataSource`)))) where (`a`.`Deleted` = 0)

vi_workorderrecheckdetailforexport

{
  "message": "\u89c6\u56fe vi_workorderrecheckdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderrecheckdetailforexport` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`b`.`AppCode` AS `AppCode`,`b`.`CustomerId` AS `CustomerId`,`b`.`CustomerName` AS `CustomerName`,`b`.`CustStoreId` AS `CustStoreId`,`b`.`CustStoreName` AS `CustStoreName`,`b`.`CustStoreCode` AS `CustStoreCode`,`b`.`CustSettleId` AS `CustSettleId`,`b`.`CustSettleName` AS `CustSettleName`,`b`.`ProCode` AS `ProCode`,`b`.`ProName` AS `ProName`,`b`.`CityCode` AS `CityCode`,`b`.`CityName` AS `CityName`,`b`.`AreaCode` AS `AreaCode`,`b`.`AreaName` AS `AreaName`,concat(`b`.`ProName`,`b`.`CityName`,`b`.`AreaName`,`b`.`InstallAddress`) AS `InstallAddress`,`c`.`UserName` AS `UserName`,`c`.`UserTel` AS `UserTel`,`c`.`VinNumber` AS `VinNumber`,`c`.`PlateNumber` AS `PlateNumber`,`c`.`CarFullName` AS `CarFullName`,`c`.`Color` AS `Color`,`c`.`CarType` AS `CarType`,if((`e`.`ServiceType` = 6),1,0) AS `IsCentralize`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.PostFillWorkOrder')) = 1),'是','否') AS `IsRepair`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonCode')) AS `ActualRecordPersonCode`,json_unquote(json_extract(`f`.`BussinessJson`,'$.ActualRecordPersonInfo.ActualRecordPersonName')) AS `ActualRecordPersonName`,ifnull(`e`.`WorkerCode`,`e`.`ServiceCode`) AS `ActualServiceCode`,ifnull(`e`.`WorkerName`,`e`.`ServiceName`) AS `ActualServiceName`,`e`.`ServiceCode` AS `ServiceCode`,`e`.`ServiceName` AS `ServiceName`,`b`.`Remark` AS `Remark`,`e`.`Remark` AS `RecordRemark`,`b`.`CreatedAt` AS `CreatedAt`,`d`.`CompleteTime` AS `CompleteTime`,`fn_GetAFCPassAuditTimeById`(`a`.`WorkOrderId`) AS `PassAuditTime`,`a`.`RecheckStatus` AS `RecheckStatus`,(case `a`.`RecheckStatus` when 0 then '复检不通过' when 1 then '复检通过' when 2 then '待复检' end) AS `RecheckStatusName`,`a`.`RecheckPersonCode` AS `RecheckPersonCode`,`a`.`RecheckPersonName` AS `RecheckPersonName`,`a`.`RecheckPassTime` AS `RecheckPassTime`,`a`.`FirstRecheckTime` AS `FirstRecheckTime` from (((((`tb_workorderrecheckinfo` `a` left join `tb_workorderinfo` `b` on(((`a`.`WorkOrderId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workcarinfo` `c` on(((`a`.`WorkOrderId` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_recordinfo` `d` on(((`a`.`WorkOrderId` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`WorkOrderId` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on((`a`.`WorkOrderId` = `f`.`WorkOrderId`))) where (`a`.`Deleted` = 0)

vvi_workorderauditinfoforafc

{
  "message": "\u89c6\u56fe vvi_workorderauditinfoforafc \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vvi_workorderauditinfoforafc` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)',NULL) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_getstatusnamebycode`(`a`.`WorkStatus`) AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `closestatusname`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`d`.`v_canaltest1` AS `v_canaltest1`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`StepName` = '质检') and (`w1`.`StepStatus` = 1) and (`w1`.`Deleted` = 0)) order by `w1`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `completetime`,`c`.`ClosedAt` AS `orderclosetime`,`c`.`ClosePersonCode` AS `orderclosecode`,`c`.`ClosePersonName` AS `orderclosename`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdispatchtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchcname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `lastdispatchcode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `lastdispatchname`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,7) AS `firstrecordtime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`w5`.`Value` AS `contractno`,`w9`.`IntervieweeType` AS `intervieweetype`,`w9`.`IntervieweeName` AS `intervieweename`,`w9`.`AddressType` AS `addresstype`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `lastappointtime`,`w9`.`IsNightVisit` AS `isnightvisit`,`w9`.`EstimatedDepartureTime` AS `estimateddeparturetime` from ((((((`tb_workorderinfo` `a` join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `w5` on(((`a`.`Id` = `w5`.`WorkOrderId`) and (`w5`.`Deleted` = 0) and (`w5`.`TypeCode` = 1)))) join `tb_afcworkorderinfo` `w9` on(((`a`.`Id` = `w9`.`Id`) and (`w9`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`WorkStatus` = '11'))

vi_vhsworkedorderinfo

{
  "message": "\u89c6\u56fe vi_vhsworkedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_vhsworkedorderinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_vhsworkedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`i`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,(case `i`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' end) AS `CloseStatusName`,`a`.`InstallTime` AS `RequiredTime`,`e`.`Address` AS `Address`,`e`.`AddressTypeCode` AS `AddressTypeCode`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaCode` AS `AreaCode`,`e`.`AreaName` AS `AreaName`,`f`.`SubjectNameSummary` AS `SubjectName`,`f`.`SubjectCodeSummary` AS `SubjectCodeSummary`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`g`.`SignUpStatus` AS `SignUpStatus`,`g`.`v_vhsAppCode` AS `vhsAppCode`,`g`.`Mortgagee` AS `Mortgagee`,`g`.`CollectionStatus` AS `CollectionStatus`,`g`.`SubCompanyName` AS `SubCompanyName`,`g`.`SubCompanyId` AS `SubCompanyId`,`g`.`ContractStatus` AS `ContractStatus`,`g`.`ProductCategory` AS `ProductCategory`,`g`.`ProductSolutionType` AS `ProductSolutionType`,`g`.`IsAppoint` AS `IsAppoint`,ifnull(`n`.`status`,1) AS `CustomerPayStatus`,`h1`.`ReceiveState` AS `ReceiveState`,(case when ((json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) = 1) or (convert(`FN_GETORDERTYPEBYCODE`(`a`.`OrderType`) using utf8mb4) = 'ETC安装')) then 2 when ((`h1`.`ReceiveState` = 0) and (`a`.`WorkStatus` = 10)) then 2 else `h2`.`ReceiveState` end) AS `ReturnState`,`i`.`TypeStatus` AS `TypeStatus`,`i`.`SuspendStatus` AS `SuspendStatus`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,(case when ((`c`.`AppointStatus` = 3) and (`i`.`TypeStatus` <> 2)) then 0 else `c`.`AppointStatus` end) AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`g`.`ReceiverLoginName` AS `OperCode`,`g`.`ReceiverUserName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`b`.`PlateNumber` AS `PlateNumber`,`k`.`ServiceCode` AS `ServiceCode`,`k`.`ServiceName` AS `ServiceName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.AppraisalStatus')) AS `AppraisalStatus`,`h2`.`ReceiveTime` AS `ReturnTime`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`l`.`v_IsRelateEtc` AS `IsRelateEtc`,`l`.`v_IfEtcRecord` AS `IfEtcRecord`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.LoanType')) AS `LoanType`,`c`.`AppointStatus` AS `OriginalAppointStatus`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.PostMortgage')) AS `PostMortgage`,json_unquote(json_extract(`g`.`MortgageInfoJson`,'$.FundSide')) AS `FundSide`,json_unquote(json_extract(`l`.`BussinessJson`,'$.RelationCode')) AS `RelationCode`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsExtraOrder')) AS `IsExtraOrder`,`m`.`HandlingMethodCode` AS `HandlingMethodCode`,`m`.`HandlingMethodName` AS `HandlingMethodName`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SettleStatusTypeName')) AS `SettleStatusTypeName`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`l`.`BussinessJson`,'$.CarMortLoanFlag')) AS `CarMortLoanFlag`,json_unquote(json_extract(`l`.`BussinessJson`,'$.IsBatchOrder')) AS `IsBatchOrder`,json_unquote(json_extract(`l`.`BussinessJson`,'$.SupplementStatus')) AS `SupplementStatus`,`l`.`v_OutCardDate` AS `OutCardDate` from ((((((((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0) and (`e`.`AddressTypeCode` = '300')))) left join `tb_worksubjectsummary` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h1` on(((`h1`.`WorkOrderId` = `a`.`Id`) and (`h1`.`ReceiveType` = 1) and (`h1`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `h2` on(((`h2`.`WorkOrderId` = `a`.`Id`) and (`h2`.`ReceiveType` = 2) and (`h2`.`Deleted` = 0)))) left join `tb_workorderstatus` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workserviceinfo` `k` on(((`k`.`WorkOrderId` = `a`.`Id`) and (`k`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `l` on(((`a`.`Id` = `l`.`WorkOrderId`) and (`l`.`Deleted` = 0)))) left join `tb_vhsworkorderrecorddetail` `m` on(((`a`.`Id` = `m`.`Id`) and (`m`.`Deleted` = 0)))) left join (select `a`.`WorkOrderId` AS `WorkOrderId`,0 AS `status` from `tb_workfeeitem` `a` where ((`a`.`PayItemStatus` = 0) and (`a`.`Deleted` = 0)) group by `a`.`WorkOrderId`) `n` on((`n`.`WorkOrderId` = `a`.`Id`))) where (`a`.`Deleted` = 0)

vi_workorderlistforchp_audit

{
  "message": "\u89c6\u56fe vi_workorderlistforchp_audit \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp_audit` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,'')) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(`a`.`ProName`,`a`.`CityName`,ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`SaleName` AS `ServiceGoodsName`,`e`.`BrandName` AS `BrandName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `tb_appointment`.`CreatedAt` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `tb_appointment`.`Remark` from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` <> 5)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','重新提交处理结果','提交结果'))) order by `w1`.`DoneAt` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,`wf`.`DoneAt` AS `AuditTime`,`wf`.`OperCode` AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`CloseReasonName` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate` from ((((((((((`tb_workflowinfo` `wf` FORCE INDEX FOR ORDER BY (`NON-DoneAt`) join `tb_workorderinfo` `a` on(((`a`.`Id` = `wf`.`WorkOrderId`) and (`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067')))) left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`wf`.`Deleted` = 0) and (`wf`.`StepName` in ('质检工单(安装)','质检工单(勘测)','质检工单')) and (`wf`.`StepStatus` = 1) and exists(select 1 from `tb_workflowinfo` `wa` where ((`wa`.`WorkOrderId` = `wf`.`WorkOrderId`) and (`wa`.`StepName` = '质检工单(安装)') and (`wf`.`StepName` in ('质检工单(勘测)','质检工单')) and (`wa`.`OperCode` = `wf`.`OperCode`) and (`wa`.`StepStatus` = 1) and (`wa`.`Deleted` = 0))) is false)

vi_tireworkorderinfo

{
  "message": "\u89c6\u56fe vi_tireworkorderinfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=UNDEFINED DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_tireworkorderinfo` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,if((`c`.`TypeStatus` = 1),'(待关闭)','') AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,ifnull(convert(`fn_getstatusnamebycode`(`a`.`WorkStatus`) using utf8mb4),'无') AS `workstatusname`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`c`.`TypeStatus` AS `typestatus`,(case `c`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,`c`.`CloseReasonName` AS `CloseReasonName`,`f`.`SubjectCodeSummary` AS `subjectcode`,`f`.`SubjectNameSummary` AS `subjectname`,`f`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `requiredtime`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,'')) AS `addressfullname`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`e`.`ServiceCode` AS `servicecode`,`e`.`ServiceName` AS `servicename`,(select `g`.`DoneAt` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditaccepttime`,(select `g`.`OperCode` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptcode`,(select `g`.`OperName` from `tb_workflowinfo` `g` where ((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)) order by `g`.`DoneAt` desc limit 1) AS `auditacceptname`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `ordercompletetime`,`c`.`ClosedAt` AS `closedat`,`c`.`ClosePersonCode` AS `closepersoncode`,`c`.`ClosePersonName` AS `closepersonname`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `requestclosetime`,`fn_GetRequestCloseById`(`a`.`Id`,2) AS `requestclosecode`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `requestclosename`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,1) AS `firstdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,2) AS `lastdistributetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,3) AS `firstdispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,4) AS `firstdispatchername`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,5) AS `dispatchercode`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,6) AS `dispatchername`,`i`.`CompleteTime` AS `completetime`,`fn_GetDispatchRecordTimeById`(`a`.`Id`,8) AS `lastrecordtime`,`c`.`AuditStatus` AS `AuditStatus`,`c`.`NodeCode` AS `CurrentNodeCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `appointreason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `appointremark`,`d`.`v_DynIsHelpers` AS `DynIsHelpers`,`d`.`v_DynVinNumber` AS `DynVinNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynPlateNumber')) AS `DynPlateNumber`,json_unquote(json_extract(`d`.`BussinessJson`,'$.DynFormInfo.DynUserName')) AS `DynUserName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`v_tirePlateNumber` AS `PlateNumber`,`j`.`SaleName` AS `SaleName`,concat(`a`.`LinkMan`,' ',`a`.`LinkTel`) AS `LinkInfo` from (((((((`tb_workorderinfo` `a` left join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workflowinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`StepName` = '质检') and (`g`.`StepStatus` = 1)))) left join `tb_recordinfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = 1089))

vi_chpworkorderdetail_test

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail_test \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail_test` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭/冻结' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,`fn_GetLastFailAppointConcat`(`a`.`Id`) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',concat(ifnull(`tb_appointment`.`ApplyReason`,''),ifnull(`tb_appointment`.`FailText`,'')),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\r\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('质检驳回(安装)','质检驳回(勘测)')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '质检工单(安装)') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case `g`.`Seller` when 0 then '中瑞' when 1 then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) AS `chpIsSelfWiring`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008497'))),'$.Specifications')))),'||','') AS `HardWire`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008498'))),'$.Specifications')))),'||','') AS `FlexibleCord`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008502'))),'$.Specifications')))),'||','') AS `Drivepipe`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008500'))),'$.Specifications')))),'||','') AS `LeakageInsurance`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008501'))),'$.Specifications')))),'||','') AS `AirSwitchBox`,replace(concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.DeliveryMethod')),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'未使用',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.ActualUsage'))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')) = '其他'),concat(json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')),':',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.BrandRemark'))),json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Brand')))),'|',if((json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.NotUsed')) = 1),'',json_unquote(json_extract(json_extract(json_extract(`c`.`BussinessJson`,'$.chpAccessories'),json_unquote(json_search(json_extract(`c`.`BussinessJson`,'$.chpAccessories[*].AccessoriesTypeCode'),'one','LM00008499'))),'$.Specifications')))),'||','') AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt` from (((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`h`.`MaterialTypeCode` like '0101%')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_afcworkorderdetailforexport

{
  "message": "\u89c6\u56fe vi_afcworkorderdetailforexport \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcworkorderdetailforexport` AS select `a`.`Id` AS `WorkOrderId`,`a`.`OrderType` AS `OrderType`,`h`.`ContractNumber` AS `ContractNumber`,`f`.`SubjectName` AS `SubjectName`,`f`.`SubjectCode` AS `SubjectCode`,`g`.`CustomerName` AS `CustomerName`,`g`.`CustomerId` AS `CustomerId`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `CreatedTime`,`h`.`BorrowerName` AS `UserName`,cast(`a`.`RequiredTime` as date) AS `RequiredTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentPersonCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`h`.`OverdueDays` AS `OverdueDays`,(case `g`.`IntervieweeType` when '0' then '借款人' when '1' then '共借人' when '2' then '担保人' when '3' then '亲友' when '4' then '配偶' when '5' then '承租人' when '6' then '实际用车人' when '7' then '申请人' else '' end) AS `IntervieweeType`,`g`.`IntervieweeName` AS `IntervieweeName`,(case `e`.`AddressTypeCode` when '200' then '户籍地址' when '201' then '居住地址' when '202' then '单位地址' when '203' then '其他地址(居住)' when '204' then '其他地址(单位)' when '205' then '房产地址' when '206' then '其他地址' else NULL end) AS `Typee`,`e`.`ProCode` AS `ProCode`,`e`.`ProName` AS `ProName`,`e`.`CityCode` AS `CityCode`,`e`.`CityName` AS `CityName`,`e`.`AreaName` AS `AreaName`,`e`.`AreaCode` AS `AreaCode`,`e`.`Address` AS `Address`,if((`g`.`IsNightVisit` = 0),'否','是') AS `IsNightVisit`,if((`g`.`TripMode` = 0),'自驾','非自驾') AS `TripMode`,`k1`.`FeeValue` AS `Achievements`,`k2`.`FeeValue` AS `NightVisitFee`,`g`.`TotalDistance` AS `TotalDistance`,`g`.`ReturnDistance` AS `ReturnDistance`,`k3`.`FeeValue` AS `OilPrice`,`k4`.`FeeValue` AS `OilSubsidy`,`k5`.`FeeValue` AS `RoadBridgePrice`,`k6`.`FeeValue` AS `InTrafficPrice`,`k7`.`FeeValue` AS `TaxiFare`,`k8`.`FeeValue` AS `Accommodation`,`k9`.`FeeValue` AS `DifferenceFare`,`k11`.`FeeValue` AS `LimitationFee`,`k12`.`FeeValue` AS `ReportingQuality`,`h`.`OverduePrincipal` AS `OverduePrincipal`,`k13`.`FeeValue` AS `RefundPrice`,`k14`.`FeeValue` AS `ReceiveAmounts`,`k15`.`FeeValue` AS `ReturnCountReward`,`k16`.`FeeValue` AS `ReturnPriceReward`,concat(floor((timestampdiff(SECOND,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) / 86400)),'天',(timestampdiff(HOUR,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 24),'时',(timestampdiff(MINUTE,`a`.`CreatedAt`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束')) % 60),'分') AS `UseTime`,(case `g`.`AddressType` when '0' then '城市' when '1' then '农村' when '2' then '单位' end) AS `AddressType`,(case json_extract(`m`.`RecordJson`,'$.IsFindPerson') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindPerson`,(case json_extract(`m`.`RecordJson`,'$.IsOtherAccess') when '0' then '否' when '1' then '是' else NULL end) AS `IsOtherAccess`,(case json_extract(`m`.`RecordJson`,'$.AddressInfoTopCode') when '0' then '地址存在且有效' when '1' then '地址存在但无效' when '2' then '地址虚假/不存在' else '' end) AS `AddressInfoTopName`,if((json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult') is not null),if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.CustomerContactList[*].ContactResult')),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.IsOtherAccess')),'是','否'))),if(((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 0) or (json_unquote(json_extract(`m`.`RecordJson`,'$.LinkmanIsContact')) = 'null')),if((json_extract(`m`.`RecordJson`,'$.CustomerIsContact') = 0),if((json_extract(`m`.`RecordJson`,'$.IsOtherAccess') = 0),'否','是'),'是'),if((json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') = 1),'是',if(1 member of (json_extract(`m`.`RecordJson`,'$.LinkmanContactCommonList[*].ContactResult')),'是',NULL)))) AS `IsSecondLink`,`fn_afcgetsecondlinkrelationbyid`(`a`.`Id`,`a`.`CustomerName`) AS `SecondLinkMan`,json_extract(`m`.`RecordJson`,'$.CustomerIsContact') AS `CustomerIsContact`,json_extract(`m`.`RecordJson`,'$.LinkmanIsContact') AS `LinkmanIsContact`,(case json_extract(`m`.`RecordJson`,'$.IsFindCar') when '0' then '否' when '1' then '是' else NULL end) AS `IsFindCar`,if((cast(json_extract(`m`.`RecordJson`,'$.CarUseInfo') as char charset utf8mb4) = 'null'),NULL,json_unquote(json_extract(`m`.`RecordJson`,'$.CarUseInfo'))) AS `CarUseInfo`,if((cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),cast(json_extract(`m`.`RecordJson`,'$.CustomerCommitmentDate') as date),NULL) AS `CustomerCommitmentDate`,(case json_extract(`m`.`RecordJson`,'$.RiskLevel') when '0' then '低' when '1' then '中' when '2' then '高' end) AS `RiskLevel`,(case json_extract(`m`.`RecordJson`,'$.NeedLawsuit') when '0' then '否' when '1' then '是' else NULL end) AS `NeedLawsuit`,(case json_extract(`m`.`RecordJson`,'$.NeedSeizureCar') when '0' then '否' when '1' then '是' else NULL end) AS `NeedSeizureCar`,cast(`h`.`CaseTime` as date) AS `CaseTime`,cast(`h`.`RetreatTime` as date) AS `RetreatTime`,`g`.`FirstDistributeTime` AS `FirstDistributeTime`,`fn_GetAFCSetOutTimeById`(`a`.`Id`) AS `SetOutTime`,`fn_GetAFCEndVisitTimeById`(`a`.`Id`) AS `EndVisitTime`,`fn_GetAfcDispatcherName`(`a`.`Id`) AS `SendPerson`,`n`.`SignTime` AS `SignTime`,`fn_GetAFCLastRecordTimeById`(`a`.`Id`) AS `LastRecordTime`,`i`.`ServiceCode` AS `ServiceCode`,`i`.`ServiceName` AS `ServiceName`,`m`.`Department` AS `Department`,`m`.`VisitorRole` AS `VisitorRole`,`fn_GetServiceAuditFirstPersonById`(`a`.`Id`) AS `FirstOrderAuditPerson`,`fn_GetServiceAuditFirstTimeById`(`a`.`Id`) AS `FirstOrderAuditTime`,`fn_GetAFCPassAuditTimeById`(`a`.`Id`) AS `PassOrderAuditTime`,`fn_GetAFCPassAuditPersonNameById`(`a`.`Id`) AS `PassOrderAuditPerson`,`fn_GetAFCServiceAuditTimesById`(`a`.`Id`) AS `NoAuditTimes`,`fn_GetServiceAuditRejectReasonById`(`a`.`Id`) AS `FirstAuditRejectRemark`,`fn_GetRequestCloseTimeById`(`a`.`Id`) AS `RequestCloseTime`,if((`o1`.`CloseReasonCode` = 'CloseReason8101-00'),`o1`.`Remark`,`o1`.`CloseReasonName`) AS `CloseReasonName`,`o1`.`ClosePersonName` AS `RequestClosePerson`,`o1`.`ClosedAt` AS `ClosedAt`,`fn_GetAcceptTimeById`(`a`.`Id`) AS `AcceptTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,`l`.`Amount` AS `Amount`,`a`.`Remark` AS `CreatedRemark`,`g`.`ReimbursableDistance` AS `ReimbursableDistance`,`g`.`AdjustReimbursableDistance` AS `AdjustReimbursableDistance`,`h`.`UserProName` AS `BelongingRegion`,`p`.`appointTime` AS `AppointTime`,`q`.`FeeValue` AS `ExpressFee`,(case `p`.`v_FollowFrequency` when 0 then '低频跟进' when 1 then '高频跟进' end) AS `FollowFrequency`,if((`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'路况异常签到') is null),'否','是') AS `AbnormalRoadCondition`,`p`.`v_LastNegotiatorTime` AS `LastNegotiatorTime`,`p`.`v_ReportDeadline` AS `ReportDeadline`,`fn_GetAfcReturnTypeByCode`(json_unquote(json_extract(`p`.`BussinessJson`,'$.OrderReturnedTypeCode'))) AS `OrderReturnedTypeName`,(case `p`.`v_AfcCompleteType` when 1 then '是' when 3 then '是' when 2 then '否' end) AS `AssistComplete`,`h`.`ResPrincipal` AS `ResPrincipal`,`p`.`v_UnFollowDays` AS `UnFollowDays`,`n`.`SignAddr` AS `SignAddr`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualDistance')) AS `UnusualDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.UnusualSign')) AS `UnusualSign`,(case `fn_GetFeeTypeById`(`a`.`Id`,'住宿费',ifnull(`a`.`ServiceProviderCode`,'1001'),2) when 0 then NULL when 1 then '待审核' when 2 then '已通过' when 3 then '未通过' else NULL end) AS `AuditStatus`,`s`.`SignTime` AS `AccommodateSign`,`g`.`OptimalReturnDistance` AS `OptimalReturnDistance`,json_unquote(json_extract(`p`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,`l`.`Remark` AS `FeeRemark`,if((json_unquote(json_extract(`m`.`RecordJson`,'$.IsFindPerson')) = 1),json_unquote(json_extract(`m`.`RecordJson`,'$.FindWho')),NULL) AS `FindWho`,`g`.`AdjustReimReturnDistance` AS `AdjustReimReturnDistance`,(case `p`.`v_SecondVisitStatus` when 0 then '待走访' when 1 then '走访中' when 2 then '走访完成' when 3 then '走访拒绝' end) AS `SecondVisitStatus`,now() AS `CreatedAt`,0 AS `Deleted` from (((((((((((((((((((((((((((((`tb_workorderinfo` `a` join `tb_workaddressinfo` `e` on(((`e`.`WorkOrderId` = `a`.`Id`) and (`e`.`Deleted` = 0)))) left join `tb_workservicesubject` `f` on(((`f`.`WorkOrderId` = `a`.`Id`) and (`f`.`Deleted` = 0)))) join `tb_afcworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_afcworkfinanceinfo` `h` on((`h`.`WorkOrderId` = `a`.`Id`))) left join `tb_workserviceinfo` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_recordinfo` `j` on(((`j`.`WorkOrderId` = `a`.`Id`) and (`j`.`Deleted` = 0)))) left join `tb_afcfeeinfo` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'Achievements')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'NightVisitFee')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'OilPrice')))) left join `tb_afcfeedetail` `k4` on(((`k4`.`WorkOrderId` = `a`.`Id`) and (`k4`.`Deleted` = 0) and (`k4`.`PriceTypeCode` = 'OilSubsidy')))) left join `tb_afcfeedetail` `k5` on(((`k5`.`WorkOrderId` = `a`.`Id`) and (`k5`.`Deleted` = 0) and (`k5`.`PriceTypeCode` = 'RoadBridgePrice')))) left join `tb_afcfeedetail` `k6` on(((`k6`.`WorkOrderId` = `a`.`Id`) and (`k6`.`Deleted` = 0) and (`k6`.`PriceTypeCode` = 'InTrafficPrice')))) left join `tb_afcfeedetail` `k7` on(((`k7`.`WorkOrderId` = `a`.`Id`) and (`k7`.`Deleted` = 0) and (`k7`.`PriceTypeCode` = 'TaxiFare')))) left join `tb_afcfeedetail` `k8` on(((`k8`.`WorkOrderId` = `a`.`Id`) and (`k8`.`Deleted` = 0) and (`k8`.`PriceTypeCode` = 'Accommodation')))) left join `tb_afcfeedetail` `k9` on(((`k9`.`WorkOrderId` = `a`.`Id`) and (`k9`.`Deleted` = 0) and (`k9`.`PriceTypeCode` = 'DifferenceFare')))) left join `tb_afcfeedetail` `k11` on(((`k11`.`WorkOrderId` = `a`.`Id`) and (`k11`.`Deleted` = 0) and (`k11`.`PriceTypeCode` = 'LimitationFee')))) left join `tb_afcfeedetail` `k12` on(((`k12`.`WorkOrderId` = `a`.`Id`) and (`k12`.`Deleted` = 0) and (`k12`.`PriceTypeCode` = 'ReportingQuality')))) left join `tb_afcfeedetail` `k13` on(((`k13`.`WorkOrderId` = `a`.`Id`) and (`k13`.`Deleted` = 0) and (`k13`.`PriceTypeCode` = 'RefundPrice')))) left join `tb_afcfeedetail` `k14` on(((`k14`.`WorkOrderId` = `a`.`Id`) and (`k14`.`Deleted` = 0) and (`k14`.`PriceTypeCode` = 'receiveAmounts')))) left join `tb_afcfeedetail` `k15` on(((`k15`.`WorkOrderId` = `a`.`Id`) and (`k15`.`Deleted` = 0) and (`k15`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k16` on(((`k16`.`WorkOrderId` = `a`.`Id`) and (`k16`.`Deleted` = 0) and (`k16`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_afcworkfinancerecord` `m` on(((`m`.`WorkOrderId` = `a`.`Id`) and (`m`.`Deleted` = 0)))) left join `tb_worksignininfo` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0) and (`n`.`SignType` = 2)))) left join `tb_workorderstatus` `o1` on(((`o1`.`WorkOrderId` = `a`.`Id`) and (`o1`.`Deleted` = 0) and (`o1`.`TypeStatus` = 0)))) join `tb_workorderstatus` `o` on(((`o`.`WorkOrderId` = `a`.`Id`) and (`o`.`Deleted` = 0) and (`o`.`WorkStatus` not in (9,10))))) left join `tb_workbussinessjsoninfo` `p` on(((`a`.`Id` = `p`.`WorkOrderId`) and (`p`.`Deleted` = 0)))) left join `tb_afcfeedetail` `q` on(((`a`.`Id` = `q`.`WorkOrderId`) and (`q`.`Deleted` = 0) and (`q`.`PriceTypeCode` = 'ExpressFee')))) left join `tb_worksignininfo` `s` on(((`a`.`Id` = `s`.`WorkOrderId`) and (`s`.`Deleted` = 0) and (`s`.`SignType` = 5)))) where (`a`.`Deleted` = 0)

vi_workingorderinfo

{
  "message": "\u89c6\u56fe vi_workingorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workingorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workingorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,if((`g`.`TypeStatus` = 1),'(待关闭)',NULL) AS `StatusTypeName`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `PayStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperId` AS `OperId`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`b`.`ShortVin` AS `ShortVin`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`CreatedAt` AS `CreatedAt`,`d`.`InsertTime` AS `InsertTime`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,if((`c`.`AppointStatus` not in (0,4,7)),concat(`fn_GetAppointStatusByCode`(`c`.`AppointStatus`),',',replace(ifnull(if((`c`.`AppointStatus` = 5),NULL,`c`.`LastRemark`),''),';',','),' ',ifnull(if((`c`.`AppointStatus` = 5),NULL,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`)),'')),NULL) AS `LastAppointInfo`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.RejectReason')) AS `RejectReason`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatinginfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderacceptinfo

{
  "message": "\u89c6\u56fe vi_workorderacceptinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workorderacceptinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderacceptinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,1) AS `OperCode`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,2) AS `OperName`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,3) AS `DirectOrderAccept`,`fn_GetWorkFlowAcceptInfo`(`a`.`Id`,4) AS `InsertTime`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`h`.`SignType` AS `SignType`,`i`.`v_PostFillWorkOrder` AS `PostFillWorkOrder`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_worksignininfo` `h` on(((`a`.`Id` = `h`.`WorkOrderId`) and (`h`.`SignType` = 2) and (`h`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workresourceinfo

{
  "message": "\u89c6\u56fe vi_workresourceinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workresourceinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workresourceinfo` AS select `a`.`Id` AS `Id`,`a`.`WorkOrderId` AS `WorkOrderId`,`a`.`GoodsDetailId` AS `GoodsDetailId`,`a`.`ResourceName` AS `ResourceName`,`a`.`ResourceId` AS `ResourceId`,`a`.`SourceType` AS `SourceType`,`a`.`RemindContent` AS `RemindContent`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,`a`.`Duration` AS `Duration`,`a`.`ResourceTag` AS `ResourceTag`,`a`.`CreatedById` AS `CreatedById`,`a`.`CreatedAt` AS `CreatedAt`,`a`.`UpdateById` AS `UpdateById`,`a`.`UpdateAt` AS `UpdateAt`,`a`.`Deleted` AS `Deleted`,`a`.`ImageAddressUrl` AS `ImageAddressUrl`,`b`.`FileSource` AS `FileSource`,`a`.`ResourceClassName` AS `ResourceClassName` from (`tb_workresourceinfo` `a` join `basic_resourceitem` `b` on(((`a`.`ResourceId` = `b`.`Id`) and (`b`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_chpworkorderdetail

{
  "message": "\u89c6\u56fe vi_chpworkorderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_chpworkorderdetail` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`b`.`SubjectNameSummary` AS `SubjectNameSummary`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`ProName` AS `ProName`,`a`.`CityName` AS `CityName`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`Remark` AS `Remark`,(case `c`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `FirstConcatRole`,`c`.`v_chpCarUserName` AS `chpCarUserName`,`c`.`v_chpCarUserTel` AS `chpCarUserTel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarVinNumber')) AS `chpCarVinNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.IsSelfBuiltHouse')) AS `IsSelfBuiltHouse`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.CarParkin')) AS `CarParkin`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ProtectionBox')) AS `ProtectionBox`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.InstallType')) AS `InstallType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.GetElectricityType')) AS `GetElectricityType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Schedule')) AS `Schedule`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.ElectricityMetersType')) AS `ElectricityMetersType`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.PowerPointLocation')) AS `PowerPointLocation`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.WechatNumber')) AS `WechatNumber`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWXAddProgress')) AS `chpWXAddProgress`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFirstContact.Remark')) AS `FirstContactRemark`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPerson`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1)) AS `CurrentPersonCode`,(select max(`b1`.`DoneAt`) from (`workflowruntimeitems` `a1` join `workflowruntimesteps` `b1`) where ((`a1`.`Id` = `b1`.`RuntimeItemId`) and (`a1`.`Deleted` = 0) and (`b1`.`Deleted` = 0) and (`b1`.`Name` = '开始') and (`b1`.`DoneAt` is not null) and (`a`.`Id` = `a1`.`TargetEntityId`)) group by `a1`.`TargetEntityId`) AS `SubmmitTime`,`a`.`RequiredTime` AS `RequiredTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollowTime')) AS `chpNextFollowTime`,(select (case `tb_appointment`.`AppointStatus` when 0 then '' when 1 then '改约' when 2 then '等通知' when 3 then '请求关闭' when 4 then '客服异常反馈记录' when 5 then '请求关闭(客户审核)' when 6 then '需再次上门' when 7 then '智能改约' when 8 then '改约' when 9 then '等通知' when 10 then '请求关闭' when 11 then '跟进记录' end) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`AppointSource` in (1,3)) and (`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`AppointStatus` in (3,11))) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastAppointStatus`,(select concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) from `tb_appointment` where ((`tb_appointment`.`WorkOrderId` = `a`.`Id`) and (`tb_appointment`.`Deleted` = 0)) order by `tb_appointment`.`CreatedAt` desc limit 1) AS `LastFailAppointConcat`,(select group_concat(concat(convert(if((`tb_appointment`.`CreatedAt` is not null),concat('记录提交时间:',`tb_appointment`.`CreatedAt`,';'),'') using utf8),if(((`tb_appointment`.`ApplyReason` is null) and (`tb_appointment`.`FailText` is null)),'',concat('申请原因:',ifnull(`tb_appointment`.`ApplyReason`,''),';')),if((`tb_appointment`.`Remark` is not null),concat('描述:',`tb_appointment`.`Remark`,';'),''),convert(if((`tb_appointment`.`NextContactTime` is not null),concat('下次联系时间:',`tb_appointment`.`NextContactTime`,';'),'') using utf8)) order by `tb_appointment`.`CreatedAt` DESC separator '\n') from `tb_appointment` where ((`tb_appointment`.`Deleted` = 0) and (`tb_appointment`.`WorkOrderId` = `a`.`Id`)) group by `tb_appointment`.`WorkOrderId`) AS `AllFailAppointConcat`,`d`.`SurveyTime` AS `SurveyTime`,`e`.`CompleteTime` AS `CompleteTime`,(select `w1`.`ClosedAt` from `tb_workorderstatus` `w1` where ((`a`.`Id` = `w1`.`WorkOrderId`) and (`w1`.`Deleted` = 0))) AS `ClosedAt`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,(select count(1) from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) order by `w1`.`DoneAt` desc limit 1) AS `LastAuditRejectTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('质检工单(安装)','质检工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` desc limit 1) AS `AuditTime`,(select `w2`.`OperCode` from `tb_workflowinfo` `w2` where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)) order by `w2`.`InsertTime` desc limit 1) AS `LastSurveyAuditCode`,(select `w3`.`OperName` from `tb_workflowinfo` `w3` where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)) order by `w3`.`InsertTime` desc limit 1) AS `LastSurveyAuditName`,(select `w4`.`OperCode` from `tb_workflowinfo` `w4` where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)) order by `w4`.`InsertTime` desc limit 1) AS `LastInstallAuditCode`,(select `w5`.`OperName` from `tb_workflowinfo` `w5` where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)) order by `w5`.`InsertTime` desc limit 1) AS `LastInstallAuditName`,(case when (`g2`.`Id` is not null) then '是' else '否' end) AS `IsAddition`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.SettleRoad')) AS `AdditionFeeSettleRoad`,`f1`.`PayTypeName` AS `AdditionFeePayTypeName`,(select `r2`.`Remark` from `tb_remarkinfo` `r2` where ((`r2`.`Type` = 13) and (`r2`.`WorkOrderId` = `a`.`Id`) and (`r2`.`Deleted` = 0))) AS `AdditionFeeChangeRemark`,json_unquote(json_extract(`g2`.`ExtraJson`,'$.AdditionFeeDetail')) AS `AdditionFeeDetail`,`g2`.`Price` AS `AdditionFeePrice`,(case `g2`.`PaySource` when 1 then '扫码支付' when 2 then '线下转账' when 3 then '银行转账' end) AS `AdditionFeePaySource`,`g2`.`OfflinePayer` AS `AdditionFeeOfflinePayer`,`g2`.`PayTime` AS `AdditionFeePayTime`,`gg`.`SaleName` AS `ServiceGoodsName`,`gg`.`GoodsPrice` AS `ServiceGoodsPrice`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.Power')) AS `Power`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.FirstPartySettleLength')) AS `FirstPartySettleLength`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.PackageLength')) AS `PackageLength`,`gg`.`BrandName` AS `BrandName`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.chpBrandInfoURL')) AS `chpBrandInfoURL`,json_unquote(json_extract(`gg`.`ExtraJson`,'$.ProjectWarrantyPeriod')) AS `ProjectWarrantyPeriod`,`d`.`SurveyName` AS `SurveyName`,`d`.`Surveycode` AS `Surveycode`,`e`.`ServiceName` AS `InstallName`,`e`.`ServiceCode` AS `InstallCode`,`d`.`Distance` AS `Distance`,(select (case `f1`.`Ascription` when 0 then '外勤' when 1 then '内勤' when 2 then '优工' when 3 then '特工-外访' when 4 then '特工-催收' end) from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `InstallAscription`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` limit 1) AS `FirstRecordTime`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')) and (`w1`.`NextStepName` not in ('重新调度(安装)','重新调度')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0)) order by `w1`.`InsertTime` desc limit 1) AS `LastRecordTime`,(select `f1`.`v_EmployeeAttributes` from (`tb_userinfo` `e1` left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')) limit 1) AS `EmployeeAttributes`,(case `d`.`SurveyMethod` when 1 then '单独上门勘测' when 2 then '视频等远程勘测' when 3 then '勘测+安装一起完成' end) AS `SurveyMethod`,`d`.`IndividualReason` AS `IndividualReason`,(case `d`.`SurveyResult` when 1 then '是' when 0 then '否' end) AS `SurveyResult`,`d`.`ResultReason` AS `ResultReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSurveyInfo.Remark')) AS `SurveyRemark`,(case when (`g`.`Seller` = 0) then '中瑞' when (`g`.`Seller` = 1) then '非中瑞' when ((`g`.`Seller` is null) and (`a`.`OrderType` = '9856')) then '非中瑞' end) AS `Seller`,`g`.`GoodsName` AS `GoodsName`,`h`.`MaterialPrice` AS `MaterialPrice`,(case `g`.`GoodsSource` when 0 then '分仓货品' when 1 then '批发货品' end) AS `GoodsSource`,(case when (`g`.`Seller` = 0) then `h`.`MaterialNo` end) AS `MaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.ChargerType')) AS `MaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialName` end) AS `EscrowMaterialType`,(case when (`g`.`Seller` = 1) then `h`.`MaterialNo` end) AS `EscrowMaterialNo`,json_unquote(json_extract(`g`.`ExtraJson`,'$.PileWarrantyPeriod')) AS `PileWarrantyPeriod`,`h`.`WarehouseName` AS `WarehouseName`,(case json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIsSelfWiring')) when 1 then '是' when 0 then '否' end) AS `chpIsSelfWiring`,`fn_GetChpAccessoriesInfo`('电缆硬线',`a`.`Id`) AS `HardWire`,`fn_GetChpAccessoriesInfo`('电缆软线',`a`.`Id`) AS `FlexibleCord`,`fn_GetChpAccessoriesInfo`('套管',`a`.`Id`) AS `Drivepipe`,`fn_GetChpAccessoriesInfo`('漏保',`a`.`Id`) AS `LeakageInsurance`,`fn_GetChpAccessoriesInfo`('空开盒',`a`.`Id`) AS `AirSwitchBox`,`fn_GetChpAccessoriesInfo`('充电桩立柱',`a`.`Id`) AS `ChargingPileColumn`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallRemark')) AS `chpInstallRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpNextFollow')) AS `chpNextFollow`,`a`.`CreatedAt` AS `CreatedAt`,(select `w1`.`OperCode` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonCode`,(select `w1`.`OperName` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatPersonName`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` = '首联') and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `FirstConcatTime`,`c`.`v_ChpLineActualUsage` AS `ChpLineActualUsage`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGoodsPackageSubsidyPrice')) AS `chpGoodsPackageSubsidyPrice`,`ac`.`ApplyReason` AS `LastApplyReason`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpCarModel')) AS `chpCarModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProModel')) AS `chpProModel`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpChargerNo')) AS `chpChargerNo`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOriginalInstallPerson')) AS `chpOriginalInstallPerson`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFactoryBrand')) AS `chpFactoryBrand`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpProblemDescription')) AS `chpProblemDescription`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaulttime')) AS `chpFaulttime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpFaultClass')) AS `chpFaultClass`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpSuggestedSolution')) AS `chpSuggestedSolution`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWarrantyStatus')) AS `chpWarrantyStatus`,concat((select `bd`.`Name` from `basic_datadictionary` `bd` where ((`bd`.`Code` = convert(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) using utf8)) and (`bd`.`Deleted` = 0))),',',convert(if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionCode')) = 'other'),ifnull(json_unquote(json_extract(`c`.`BussinessJson`,'$.chpActualSolutionDetail')),''),'') using utf8)) AS `chpActualSolutionName`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpIfCharge')) AS `chpIfCharge`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpAfterSaleRemark')) AS `chpAfterSaleRemark`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpLogisticsNum')) AS `chpLogisticsNum`,json_unquote(json_extract(`g`.`ExtraJson`,'$.chpShippingWarehouse')) AS `chpShippingWarehouse`,(select group_concat(concat(`tw`.`MaterialName`,',',ifnull(`tw`.`MaterialNo`,'无编码'),',',ifnull(`tw`.`Amount`,0),';') separator '\r\n') from `tb_workgoodsdetail` `tw` where ((`g`.`Id` = `tw`.`WorkGoodsId`) and (`tw`.`Deleted` = 0)) group by `tw`.`WorkOrderId`) AS `chpWarehouseMaterials`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpMaterialSN')) AS `chpMaterialSN`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlePrice')) AS `chpWorkerSettlePrice`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerSettlementMethod')) AS `chpWorkerSettlementMethod`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpWorkerFeeRemark')) AS `chpWorkerFeeRemark`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPileInventoryResults')) AS `chpPileInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpColumnInventoryResults')) AS `chpColumnInventoryResults`,json_unquote(json_extract(`c`.`BussinessJson`,'$.AdditionFeeCommissionRatio')) AS `AdditionFeeCommissionRatio`,NULL AS `AllSubsidy`,NULL AS `InstallPriPileSubsidy`,NULL AS `AfterSalePriPileSubsidy`,NULL AS `ChargingPileSubsidy`,NULL AS `LeakageInsuranceSubsidy`,NULL AS `GalvanizedPipeSubsidy`,NULL AS `AdditionSubsidy`,NULL AS `LineSubsidy`,NULL AS `RemoteSubsidy`,NULL AS `CarSubsidy`,NULL AS `BonusSubsidy`,NULL AS `DifferenceSubsidy`,NULL AS `ComplaintDeduction`,NULL AS `DifferenceDeduction`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpPilesNum'))) AS `chpPilesNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpGunsNum'))) AS `chpGunsNum`,if((json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum')) = ''),NULL,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpParkSpaceNum'))) AS `chpParkSpaceNum`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`StepName` in ('调度工单(勘测)','调度工单')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 1)) order by `w1`.`InsertTime` limit 1) AS `DispatchTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.CustomerAuditApprovalTime')) AS `CustomerAuditApprovalTime`,json_unquote(json_extract(`c`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource` from ((((((((((`tb_workorderinfo` `a` left join `tb_worksubjectsummary` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `ac` on(((`ac`.`WorkOrderId` = `a`.`Id`) and (`ac`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0)))) left join `tb_chpworkorderinfo` `d` on(((`a`.`Id` = `d`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workserviceinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workfeeinfo` `f1` on(((`a`.`Id` = `f1`.`WorkOrderId`) and (`f1`.`Deleted` = 0)))) left join `tb_workfeeitem` `g2` on(((`f1`.`Id` = `g2`.`FeeInfoId`) and (`g2`.`FeePurpose` = '增项费用') and (`g2`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0) and (`g`.`GoodsType` = 0)))) left join `tb_workgoodsinfo` `gg` on(((`a`.`Id` = `gg`.`WorkOrderId`) and (`gg`.`Deleted` = 0) and (`gg`.`GoodsType` = 29)))) left join `tb_workgoodsdetail` `h` on(((`g`.`Id` = `h`.`WorkGoodsId`) and (`h`.`Deleted` = 0) and (`a`.`OrderType` = '9856')))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067') and (`a`.`WorkStatus` not in (9,10)))

vi_accessoryinfo

{
  "message": "\u89c6\u56fe vi_accessoryinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_accessoryinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_accessoryinfo` AS select `a`.`Id` AS `Id`,`d`.`CustomerSourceId` AS `CustomerSourceId`,`d`.`CustomerSourceName` AS `CustomerSourceName`,`d`.`CustomerId` AS `CustomerId`,`d`.`CustomerName` AS `CustomerName`,`d`.`ConfirmType` AS `ConfirmType`,`d`.`CustStoreId` AS `CustStoreId`,`d`.`CustStoreName` AS `CustStoreName`,`d`.`CustStoreCode` AS `CustStoreCode`,`a`.`IsMultiImg` AS `IsMultiImg`,`a`.`RemarkSource` AS `RemarkSource`,`d`.`Priority` AS `Priority`,`c`.`CustConfirmId` AS `CustConfirmId`,`c`.`NodeCode` AS `NodeCode`,`c`.`OrderType` AS `OrderType`,`c`.`RemindContent` AS `RemindContent`,`c`.`Provider` AS `Provider`,`c`.`BussinessTypeCode` AS `BussinessTypeCode`,`a`.`AccessoryName` AS `AccessoryName`,`a`.`IsBunding` AS `IsBunding`,`a`.`UploadTime` AS `UploadTime`,`b`.`Filename` AS `Filename`,`b`.`Url` AS `Url`,`b`.`FileType` AS `FileType`,`b`.`FileLength` AS `FileLength`,`a`.`Remark` AS `Remark`,json_unquote(json_extract(`e`.`ResoureJson`,'$.ResourceType')) AS `ResourceType`,`a`.`IsOnSite` AS `IsOnSite`,`a`.`IsWatermark` AS `IsWatermark`,`a`.`IsBundingAsset` AS `IsBundingAsset`,`a`.`IsUnusual` AS `IsUnusual`,`a`.`DeviceUniqueNo` AS `DeviceUniqueNo`,`e`.`ResourceClassName` AS `ResourceClassName` from ((((`basic_accessoryinfo` `a` join `basic_resourceitem` `b` on((`a`.`ResourceId` = `b`.`Id`))) join `basic_accessoryrule` `c` on((`a`.`RuleId` = `c`.`Id`))) join `basic_custconfirmrule` `d` on((`d`.`Id` = `c`.`CustConfirmId`))) left join `basic_accessoryresource` `e` on(((`a`.`AccessoryCode` = `e`.`Code`) and (`e`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`b`.`Deleted` = 0) and (`c`.`Deleted` = 0) and (`d`.`Deleted` = 0))

vi_workorderforsearch

{
  "message": "\u89c6\u56fe vi_workorderforsearch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderforsearch` AS select `a`.`Id` AS `id`,`a`.`AppCode` AS `appcode`,`a`.`OrderType` AS `ordertype`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `statustypename`,`a`.`WorkStatus` AS `workstatus`,`fn_GetWorkPayStatus`(`a`.`Id`) AS `paystatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `closestatusname`,`fn_GetSubjectNameConcat`(`a`.`Id`) AS `subjectname`,`a`.`CustomerId` AS `customerid`,`a`.`CustomerName` AS `customername`,`a`.`CustStoreId` AS `custstoreid`,`a`.`CustStoreName` AS `custstorename`,`a`.`CustStoreCode` AS `custstorecode`,`a`.`CustSettleId` AS `custsettleid`,`a`.`CustSettleName` AS `custsettlename`,`b`.`VinNumber` AS `vinnumber`,`b`.`PlateNumber` AS `platenumber`,`b`.`UserName` AS `username`,`a`.`InstallTime` AS `installtime`,`a`.`ProCode` AS `procode`,`a`.`ProName` AS `proname`,`a`.`CityCode` AS `citycode`,`a`.`CityName` AS `cityname`,`a`.`AreaCode` AS `areacode`,`a`.`AreaName` AS `areaname`,`a`.`InstallAddress` AS `installaddress`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`LinkMan` AS `linkman`,`a`.`LinkTel` AS `linktel`,`a`.`Remark` AS `remark`,`a`.`CreatePersonCode` AS `createpersoncode`,`a`.`CreatePersonName` AS `createpersonname`,`a`.`IsUrgent` AS `isurgent`,`b`.`ShortVin` AS `shortvin`,`a`.`ServiceProviderCode` AS `serviceprovidercode`,`a`.`CreatedAt` AS `createdat`,`b`.`CarFullName` AS `carfullname`,`c`.`IfUninstall` AS `ifuninstall`,`c`.`IsSwitch` AS `isswitch`,`d`.`v_canaltest1` AS `v_canaltest1` from (((`tb_workorderinfo` `a` join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderstatus` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) where (`a`.`Deleted` = 0)

vi_workedorderinfo

{
  "message": "\u89c6\u56fe vi_workedorderinfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_workedorderinfo`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workedorderinfo` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`Id`) AS `StatusTypeName`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`a`.`InstallTime` AS `InstallTime`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `Remark`,`c`.`AppointStatus` AS `AppointStatus`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`d`.`OperCode` AS `OperCode`,`d`.`OperName` AS `OperName`,`d`.`InsertTime` AS `InsertTime`,`b`.`ShortVin` AS `ShortVin`,`a`.`CreatedAt` AS `CreatedAt`,`b`.`CarFullName` AS `CarFullName`,`a`.`CreateType` AS `CreateType`,`a`.`IsCustomer` AS `IsCustomer`,`g`.`TypeStatus` AS `TypeStatus`,`a`.`SecondLinkTel` AS `SecondLinkTel`,`a`.`SecondLinkMan` AS `SecondLinkMan`,if((json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType')) = 'null'),NULL,json_unquote(json_extract(`i`.`BussinessJson`,'$.YxServiceType'))) AS `YxServiceType`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `FinishedTime`,if((`h`.`Id` is not null),1,0) AS `IsAppShow`,json_unquote(json_extract(`i`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from ((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_appointmentconcat` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) join `tb_operatedinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) join `tb_workorderstatus` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `basic_custspecialconfig` `h` on(((`h`.`ConfirmType` = 6) and (`a`.`WorkStatus` = 9) and (locate(`a`.`OrderType`,convert(json_unquote(json_extract(`h`.`ExtraJson`,'$.OrderType')) using utf8)) > 1) and (`h`.`CustomerId` = `a`.`CustomerId`) and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` is null))

vi_workorderlistforchp

{
  "message": "\u89c6\u56fe vi_workorderlistforchp \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_workorderlistforchp` AS select `a`.`AppCode` AS `AppCode`,`k`.`TypeStatus` AS `TypeStatus`,`a`.`Id` AS `id`,`a`.`WorkStatus` AS `WorkStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`CreatedAt` AS `CreatedAt`,concat(ifnull(`f`.`v_chpCarUserName`,''),' ',ifnull(`f`.`v_chpCarUserTel`,''),if((ifnull(`f`.`v_chpCarModel`,'') = ''),'',concat(',',`f`.`v_chpCarModel`))) AS `chpCarInfo`,`f`.`v_chpCarUserName` AS `chpCarUserName`,`f`.`v_chpCarUserTel` AS `chpCarUserTel`,`f`.`v_chpCarVinNumber` AS `chpCarVinNumber`,`a`.`RequiredTime` AS `RequiredTime`,`a`.`ProCode` AS `ProCode`,`a`.`CityCode` AS `CityCode`,`a`.`AreaCode` AS `AreaCode`,concat(ifnull(`a`.`ProName`,''),ifnull(`a`.`CityName`,''),ifnull(`a`.`AreaName`,''),ifnull(`a`.`InstallAddress`,'')) AS `serviceaddress`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `ordertypename`,`c`.`SurveyTime` AS `SurveyTime`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`d`.`CompleteTime` AS `CompleteTime`,`c`.`Surveycode` AS `Surveycode`,ifnull(`d`.`ServiceCode`,(select `a1`.`OperCode` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceCode`,`d`.`ServiceCode` AS `installCode`,concat(ifnull(`a`.`LinkMan`,''),' ',ifnull(`a`.`LinkTel`,'')) AS `LinkInfo`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,concat(ifnull(concat(`e`.`BrandName`,'/'),''),ifnull(`e`.`SaleName`,'')) AS `GoodsInfo`,`e`.`BrandName` AS `BrandName`,`e`.`SaleName` AS `ServiceGoodsName`,`g`.`SubjectNameSummary` AS `SubjectNameSummary`,ifnull(`d`.`ServiceName`,(select `a1`.`OperName` from `tb_operatinginfo` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`Deleted` = 0)) group by `a1`.`WorkOrderId` having (count(1) = 1))) AS `ServiceName`,(select replace(concat(cast(`h`.`CreatedAt` as date),',',`h`.`OperatorName`,',',`fn_GetAppointStatusByCode`(`h`.`AppointStatus`),',',`h`.`ApplyReason`,ifnull(concat(',',`h`.`Remark`),''),'。',ifnull(concat('已撤回,',`ta`.`Remark`),'')),',。','。') from (`tb_appointment` `h` left join `tb_appointauditinfo` `ta` on(((`h`.`Id` = `ta`.`AppointId`) and (`ta`.`Deleted` = 0) and (`ta`.`AuditStatus` = 2)))) where ((`h`.`Deleted` = 0) and (`a`.`Id` = `h`.`WorkOrderId`)) order by `h`.`CreatedAt` desc limit 1) AS `AppointRemark`,`f`.`v_chpWXAddProgress` AS `chpWXAddProgress`,`f`.`v_chpFirstContactRole` AS `chpFirstContactRole`,(case `f`.`v_chpFirstContactRole` when 1 then '运营' when 2 then '服务人员' end) AS `chpFirstContactRoleName`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`i`.`AppointStatus` AS `LastAppointStatus`,`f`.`v_chpSurveyInstallType` AS `chpSurveyInstallType`,`f`.`v_chpElectricityMetersType` AS `chpElectricityMetersType`,(select `a1`.`CreatedAt` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointSubmmitTime`,`i`.`ApplyReason` AS `LastAppointApplyReason`,(select `a1`.`Remark` from `tb_appointment` `a1` where ((`a1`.`WorkOrderId` = `a`.`Id`) and (`a1`.`AppointSource` in (1,3)) and (`a1`.`Deleted` = 0) and (`a1`.`AppointStatus` <> 5)) order by `a1`.`Id` limit 1) AS `LastAppointRemark`,`f`.`v_chpNextFollowTime` AS `chpNextFollowTime`,`f1`.`v_EmployeeAttributes` AS `EmployeeAttributes`,`fn_GetRequestCloseById`(`a`.`Id`,1) AS `RequestCloseTime`,`fn_GetRequestCloseById`(`a`.`Id`,3) AS `RequestClosePerson`,`fn_GetRequestCloseById`(`a`.`Id`,4) AS `RequestCloseApplyReason`,`k`.`NodeCode` AS `CurrentNodeCode`,`a`.`Remark` AS `Remark`,concat(ifnull(concat(`e`.`BrandName`,'+'),''),convert(ifnull(json_unquote(json_extract(`e`.`ExtraJson`,'$.Power')),'') using utf8),convert(ifnull(concat(',',json_unquote(json_extract(`e`.`ExtraJson`,'$.PackageLength'))),'') using utf8),ifnull(concat(',',`e`.`v_ChargerType`),'')) AS `ServiceInfo`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFirstContact.IsWithPile')) AS `IsWithPile`,(case `k`.`TypeStatus` when 1 then '请求关闭(客户审核)' when 2 then '请求关闭' when 3 then '等通知' else '' end) AS `closestatusname`,(select `w1`.`DoneAt` from `tb_workflowinfo` `w1` where ((`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepName` in ('提交结果(勘测)','提交结果(安装)','重新提交处理结果(勘测)','重新提交处理结果(安装)','提交结果','重新提交处理结果'))) order by `w1`.`Id` desc limit 1) AS `lastrecordtime`,(select group_concat(ifnull(`w1`.`Remark`,'') order by `w1`.`InsertTime` DESC separator ';') from `tb_workflowinfo` `w1` where ((`w1`.`NextStepName` in ('重新提交处理结果(安装)','重新提交处理结果(勘测)','重新提交处理结果')) and (`w1`.`WorkOrderId` = `a`.`Id`) and (`w1`.`Deleted` = 0) and (`w1`.`StepStatus` = 4)) group by `w1`.`WorkOrderId`) AS `AuditRejectRemark`,`c`.`LastAuditRejectRemark` AS `LastAuditRejectRemark`,NULL AS `AuditTime`,NULL AS `OperCode`,(select `wc`.`DoneAt` from `tb_workflowinfo` `wc` where ((`wc`.`StepName` in ('质检工单(安装)','质检工单')) and (`wc`.`WorkOrderId` = `a`.`Id`) and (`wc`.`StepStatus` = 1) and (`wc`.`Deleted` = 0)) limit 1) AS `AuditAcceptTime`,`i`.`ApplyReason` AS `LastApplyReason`,`k`.`ClosedAt` AS `ClosedAt`,`k`.`Remark` AS `CloseReasonName`,`e`.`v_ChargerType` AS `ChargerType`,`a`.`CreateType` AS `CreateType`,replace(replace(concat(ifnull(concat((case json_unquote(json_extract(`f`.`BussinessJson`,'$.chpWarrantyStatus')) when 0 then '保外' when 1 then '保内' end),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaulttime')),','),''),ifnull(concat(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpFaultClass')),','),''),ifnull(json_unquote(json_extract(`f`.`BussinessJson`,'$.chpSuggestedSolution')),'')),',,,',''),',,','') AS `FaultInfo`,`d`.`InstitutionCode` AS `InstitutionCode`,(select `a1`.`Name` from `basic_institutionalinfo` `a1` where ((`a1`.`Code` = convert(`d`.`InstitutionCode` using utf8mb4)) and (`a1`.`Deleted` = 0)) limit 1) AS `InstitutionName`,`f`.`v_chpOrderCompleteTime` AS `OrderCompleteTime`,if((json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate')) = 'null'),NULL,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpInstallConditionDate'))) AS `chpInstallConditionDate`,json_unquote(json_extract(`f`.`BussinessJson`,'$.chpOrderSource')) AS `chpOrderSource`,if((ifnull(`f`.`v_chpCarModel`,'') = ''),ifnull(`a`.`Remark`,''),if((ifnull(`a`.`Remark`,'') = ''),`f`.`v_chpCarModel`,concat(`a`.`Remark`,',',`f`.`v_chpCarModel`))) AS `chpRemark` from (((((((((`tb_workorderinfo` `a` left join `tb_chpworkorderinfo` `c` on(((`a`.`Id` = `c`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on(((`a`.`Id` = `d`.`WorkOrderId`) and (`d`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0) and (`e`.`GoodsType` = 29)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_worksubjectsummary` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`a`.`Id` = `i`.`WorkOrderId`) and (`i`.`Deleted` = 0)))) left join `tb_userinfo` `e1` on(((convert(`d`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and (`e1`.`TeamCode` = '10670001')))) left join `tb_userdetail` `f1` on((`e1`.`Id` = `f1`.`Id`))) left join `tb_workorderstatus` `k` on(((`a`.`Id` = `k`.`WorkOrderId`) and (`k`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`ServiceProviderCode` = '1067'))

vi_riskworkorderinfo_other1

{
  "message": "\u89c6\u56fe vi_riskworkorderinfo_other1 \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_riskworkorderinfo_other1`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_riskworkorderinfo_other1` AS select `a`.`Id` AS `Id`,`a`.`AppCode` AS `AppCode`,`a`.`OrderType` AS `OrderType`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderTypeName`,`fn_GetStatusTypeByCode`(`a`.`WorkStatus`) AS `StatusTypeName`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatusName`,`a`.`WorkStatus` AS `WorkStatus`,`a`.`ServiceProviderCode` AS `ServiceProviderCode`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`ShortVin` AS `ShortVin`,`b`.`CarFullName` AS `CarFullName`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustStoreCode` AS `CustStoreCode`,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`) AS `RequiredTime`,`a`.`LinkTel` AS `LinkTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`fn_GetGoodsNameByWorkorderId`(`a`.`Id`) AS `GoodsName`,timestampdiff(SECOND,ifnull(`a`.`RequiredTime`,`a`.`InstallTime`),now()) AS `RequiredTimeSub`,`fn_GetAppointTime`(`a`.`Id`,'4') AS `LastAppointTime`,`fn_GetLastAppointPersonById`(`a`.`Id`,'1') AS `LastAppointName`,`fn_GetLastAppointStatusById`(`a`.`Id`) AS `LastAppointStatus`,`i`.`AppointStatus` AS `LastAppointStatusCode`,`fn_GetLastFailAppointReasonById`(`a`.`Id`) AS `LastFailReason`,`fn_GetLastAppointReasonById`(`a`.`Id`) AS `LastAppointReason`,`fn_GetLastAppointChangeRemarkById`(`a`.`Id`) AS `LastChangeRemark`,`fn_GetCloseStatusNameByOrderId`(`a`.`Id`) AS `CloseStatusName`,`f1`.`ReceiveState` AS `receiveState`,`f2`.`ReceiveState` AS `ReturnState`,`g`.`SignUpStatus` AS `SignUpStatus`,`a`.`CreatedAt` AS `CreatedAt`,`h`.`Address` AS `Address`,`b`.`ShortFourVin` AS `ShortFourVin`,json_unquote(json_extract(`j`.`BussinessJson`,'$.IsRelation')) AS `IsRelation` from (((((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_vhsworkfilereceiveinfo` `f1` on(((`f1`.`WorkOrderId` = `a`.`Id`) and (`f1`.`Deleted` = 0) and (`f1`.`ReceiveType` = 1)))) left join `tb_vhsworkfilereceiveinfo` `f2` on(((`f2`.`WorkOrderId` = `a`.`Id`) and (`f2`.`Deleted` = 0) and (`f2`.`ReceiveType` = 2)))) left join `tb_vhsworkorderinfo` `g` on(((`g`.`Id` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workaddressinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`AddressTypeCode` in ('100','200','300','400')) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `j` on(((`a`.`Id` = `j`.`WorkOrderId`) and (`j`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`CreatedAt` >= '2023-08-01'))

vi_workorderusedcarcheck2

{
  "message": "\u89c6\u56fe vi_workorderusedcarcheck2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderusedcarcheck2` AS select `a`.`Id` AS `WorkOrderId`,`fn_GetOrderTypeByCode`(`a`.`OrderType`) AS `OrderType`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoreId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`AppCode` AS `AppCode`,`b`.`VinNumber` AS `VinNumber`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`UserName` AS `UserName`,`b`.`UserTel` AS `UserTel`,if((`d`.`ServiceType` = 6),1,0) AS `IsCentralize`,`a`.`WorkStatus` AS `OrderStatus`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `OrderStatusName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPersonName`,`fn_GetCurrentPersonInfo`(`a`.`Id`,4) AS `CurrentPersonTel`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`d`.`Remark` AS `InstallRemark`,`a`.`CreatePersonCode` AS `CreatedCode`,`a`.`CreatePersonName` AS `CreatedName`,`a`.`CreatedAt` AS `SubmitTime`,ifnull(`a`.`EffectiveTime`,`fn_GetWorkTime`(`a`.`CreatedAt`)) AS `EffectiveTime`,`g`.`FirstAppointTime` AS `MinOrderTime`,`a`.`InstallTime` AS `MaxOrderTime`,`e`.`CompleteTime` AS `FirstRecordTime`,`fn_GetWorkFlowTimeInfo`(`a`.`Id`,'结束') AS `CompleteTime`,(select group_concat(distinct ifnull(`oo`.`OrderNo`,'') separator ',') from `tb_workgoodsinfo` `oo` where ((`oo`.`WorkOrderId` = `a`.`Id`) and (`oo`.`Deleted` = 0)) group by `oo`.`WorkOrderId`) AS `OrderNoConcat`,`e`.`RecordPersonCode` AS `KeepCode`,`e`.`RecordPersonName` AS `KeepName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `KeepName_zg`,if((`d`.`Privoder` = 0),'中瑞','客户') AS `Provider`,`d`.`ServiceCode` AS `InstallCode`,`d`.`ServiceName` AS `InstallName`,ifnull(`d`.`WorkerCode`,`d`.`ServiceCode`) AS `InstallCode_Actual`,ifnull(`d`.`WorkerName`,`d`.`ServiceName`) AS `InstallName_Actual`,`fn_GetWorkFlowPersonInfoNew`(`a`.`Id`,'质检',2) AS `OperName`,`f`.`SaleName` AS `GoodsConcat`,NULL AS `ServiceMateriel`,`fn_GetAppointStatusByCode`(`g`.`AppointStatus`) AS `AppointResult`,`fn_GetAppointById`(`a`.`Id`,3) AS `AppointRecord`,`fn_GetAppointById`(`a`.`Id`,1) AS `FirstAppoint`,`fn_GetAppointById`(`a`.`Id`,2) AS `LastAppoint`,`b`.`CarFullName` AS `CarModelName`,`h`.`Value` AS `LoanAmount`,now() AS `InsertTime`,0 AS `Deleted` from ((((((`tb_workorderinfo` `a` left join `tb_appointmentconcat` `g` on(((`g`.`WorkOrderId` = `a`.`Id`) and (`g`.`Deleted` = 0)))) left join `tb_workcarinfo` `b` on(((`a`.`Id` = `b`.`WorkOrderId`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `d` on((`a`.`Id` = `d`.`WorkOrderId`))) left join `tb_recordinfo` `e` on(((`a`.`Id` = `e`.`WorkOrderId`) and (`e`.`Deleted` = 0)))) left join `tb_workgoodsinfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_custcolumn` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`TypeCode` = 'loanNum') and (`h`.`Deleted` = 0)))) where ((`a`.`Deleted` = 0) and (`a`.`OrderType` = '1404'))

vi_afcreceiverecorddetail

{
  "message": "\u89c6\u56fe vi_afcreceiverecorddetail \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP VIEW IF EXISTS `vi_afcreceiverecorddetail`;
CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY DEFINER VIEW `vi_afcreceiverecorddetail` AS select `c`.`RelateId` AS `RelateId`,`a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`fn_GetStatusNameByCode`(`a`.`WorkStatus`) AS `WorkStatus`,`a`.`CustomerName` AS `CustomerName`,`d`.`ContractNumber` AS `ContractNumber`,`d`.`BorrowerName` AS `LinkMan`,`d`.`UserProName` AS `UserProName`,`d`.`OverdueDays` AS `OverdueDays`,json_unquote(json_extract(`f`.`BussinessJson`,'$.overdueGrade')) AS `OverdueGrade`,cast(`d`.`CaseTime` as date) AS `CaseDate`,cast(`d`.`RetreatTime` as date) AS `RetreatDate`,`fn_GetReceiveDate`(`a`.`Id`) AS `ReceiveDate`,`fn_GetReceivePrice`(`a`.`Id`) AS `ReceivePrice`,`fn_GetReceiveIssue`(`a`.`Id`) AS `ReceiveIssue`,`fn_GetReceiveStatus`(`a`.`Id`) AS `ReceiveStatus`,`fn_GetReceiveStatusRemark`(`a`.`Id`) AS `ReceiveStatusRemark`,`fn_GetReceivePersonAssess`(`a`.`Id`) AS `PersonAssess`,`fn_GetReceiveProAssess`(`a`.`Id`) AS `ProAssess`,(case when ((`d`.`OverdueDays` <= 60) or (`d`.`OverdueDays` is null)) then '短账' when (`d`.`OverdueDays` > 60) then '长账' end) AS `Grade`,`a`.`ProName` AS `ProName`,`g`.`ServiceName` AS `ServiceName`,`g`.`ServiceCode` AS `ServiceCode`,`fn_GetReceiveRegistrationDate`(`a`.`Id`) AS `RegistrationDate`,`fn_GetReceiveAddRemark1`(`a`.`Id`) AS `AddRemark1`,`fn_GetReceiveAddRemark2`(`a`.`Id`) AS `AddRemark2`,`k1`.`FeeValue` AS `ReceiveAmounts`,`k2`.`FeeValue` AS `ReturnCountReward`,`k3`.`FeeValue` AS `ReturnPriceReward`,`m`.`Name` AS `ReturnedType`,`fn_afcGetReturnedType`(`a`.`Id`) AS `ReturnedType2`,`fn_afcGetApprovalStatusConcat`(`a`.`Id`) AS `ApprovalStatus`,`t5`.`FeeValue` AS `EntryAmount`,ifnull((select 1 from `tb_afcpaymentreport` `t6` where ((`t6`.`WorkOrderId` = `a`.`Id`) and (`t6`.`ApprovalStatus` in (1,2,3,4)) and (`t6`.`Deleted` = 0)) limit 1),0) AS `IfReport`,(select group_concat(`t7`.`PresentName` order by `t7`.`CreatedAt` DESC separator ';') from `tb_afcpaymentreport` `t7` where ((`t7`.`WorkOrderId` = `a`.`Id`) and (`t7`.`Deleted` = 0) and (`t7`.`ApprovalStatus` in (1,2,3,4)))) AS `PresentName`,(select cast(`t9`.`UpdatedAt` as datetime) from `tb_afcpaymentreport` `t9` where ((`t9`.`WorkOrderId` = `a`.`Id`) and (`t9`.`Deleted` = 0) and (`t9`.`ApprovalStatus` in (2,3,4))) order by (case `t9`.`ReturnedTypeCode` when 'ReturnType005' then 1 when 'ReturnType003' then 2 when 'ReturnType002' then 3 when 'ReturnType001' then 4 when 'ReturnType004' then 5 else 99 end) limit 1) AS `ApprovalTime`,(select cast(`t10`.`DoneAt` as datetime) from `tb_workflowinfo` `t10` where ((`t10`.`WorkOrderId` = `a`.`Id`) and (`t10`.`Deleted` = 0) and (`t10`.`StepName` = '质检') and (`t10`.`StepStatus` = 1)) limit 1) AS `AuditTime`,`l`.`SubjectNameSummary` AS `SubjectNameSummary`,`n`.`VisitorRole` AS `VisitorRole`,`fn_GetAfcRecievePromptMerits`(`a`.`Id`) AS `PromptMerits`,`fn_GetAfcRecieveSettleTime`(`a`.`Id`) AS `SettleTime`,`fn_GetAfcRecieveSettleRemark`(`a`.`Id`) AS `SettleRemark`,json_unquote(json_extract(`f`.`BussinessJson`,'$.IfGrant')) AS `IfGrant`,`d`.`ResPrincipal` AS `ResPrincipal`,`d`.`OverduePrincipal` AS `OverduePrincipal` from ((((((((((((`tb_workorderinfo` `a` join `tb_afcworkorderinfo` `b` on(((`a`.`Id` = `b`.`Id`) and (`b`.`Deleted` = 0)))) join `tb_workorderrelation` `c` on(((`a`.`Id` = `c`.`WorkOrderId`) and (`c`.`Deleted` = 0) and (`c`.`RelationType` = 1)))) left join `tb_afcworkfinanceinfo` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_workbussinessjsoninfo` `f` on(((`a`.`Id` = `f`.`WorkOrderId`) and (`f`.`Deleted` = 0)))) left join `tb_workserviceinfo` `g` on(((`a`.`Id` = `g`.`WorkOrderId`) and (`g`.`Deleted` = 0)))) left join `tb_afcfeedetail` `k1` on(((`k1`.`WorkOrderId` = `a`.`Id`) and (`k1`.`Deleted` = 0) and (`k1`.`PriceTypeCode` = 'ReceiveAmounts')))) left join `tb_afcfeedetail` `k2` on(((`k2`.`WorkOrderId` = `a`.`Id`) and (`k2`.`Deleted` = 0) and (`k2`.`PriceTypeCode` = 'ReturnCountReward')))) left join `tb_afcfeedetail` `k3` on(((`k3`.`WorkOrderId` = `a`.`Id`) and (`k3`.`Deleted` = 0) and (`k3`.`PriceTypeCode` = 'ReturnPriceReward')))) left join `tb_worksubjectsummary` `l` on(((`l`.`WorkOrderId` = `a`.`Id`) and (`l`.`Deleted` = 0)))) left join `basic_datadictionary` `m` on(((`m`.`Code` = convert(json_unquote(json_extract(`f`.`BussinessJson`,'$.OrderReturnedTypeCode')) using utf8)) and (`m`.`Deleted` = 0)))) left join `tb_afcfeedetail` `t5` on(((`t5`.`WorkOrderId` = `a`.`Id`) and (`t5`.`PriceTypeCode` = 'RefundPrice') and (`t5`.`Deleted` = 0)))) left join `tb_afcworkfinancerecord` `n` on(((`n`.`WorkOrderId` = `a`.`Id`) and (`n`.`Deleted` = 0)))) where ((`a`.`ServiceProviderCode` = '1002') and (`a`.`Deleted` = 0))

vi_workorderfilmdetail_2

{
  "message": "\u89c6\u56fe vi_workorderfilmdetail_2 \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE ALGORITHM=MERGE DEFINER=`user_service`@`%` SQL SECURITY INVOKER VIEW `vi_workorderfilmdetail_2` AS select `a`.`Id` AS `WorkOrderId`,`a`.`AppCode` AS `AppCode`,`b`.`PlateNumber` AS `PlateNumber`,`b`.`VinNumber` AS `VinNumber`,`b`.`UserName` AS `UserName`,`a`.`WorkStatus` AS `OrderStatus`,`a`.`OrderType` AS `OrderType`,`fn_GetTaskOrderTime`(`a`.`Id`) AS `AcceptTime`,`fn_GetCurrentPersonInfo`(`a`.`Id`,1) AS `CurrentCode`,`fn_GetCurrentPersonInfo`(`a`.`Id`,2) AS `CurrentPerson`,NULL AS `CustTrade`,`a`.`CustomerId` AS `CustomerId`,`a`.`CustomerName` AS `CustomerName`,`a`.`CustStoreId` AS `CustStoerId`,`a`.`CustStoreCode` AS `CustStoreCode`,`a`.`CustStoreName` AS `CustStoreName`,`a`.`CustSettleId` AS `CustSettleId`,`a`.`CustSettleName` AS `CustSettleName`,`a`.`ProCode` AS `ProCode`,`a`.`ProName` AS `ProName`,`a`.`CityCode` AS `CityCode`,`a`.`CityName` AS `CityName`,`a`.`AreaCode` AS `AreaCode`,`a`.`AreaName` AS `AreaName`,`a`.`InstallAddress` AS `InstallAddress`,`a`.`LinkMan` AS `LinkMan`,`a`.`LinkTel` AS `LinkTel`,`a`.`Remark` AS `CustRemark`,`h`.`Remark` AS `RecordRemark`,`a`.`CreatePersonCode` AS `CreatePersonCode`,`a`.`CreatePersonName` AS `CreatePersonName`,`a`.`CreatedAt` AS `SubmitTime`,`i`.`FirstAppointTime` AS `FirstAppointedTime`,`a`.`InstallTime` AS `RequireTime`,`h`.`CompleteTime` AS `RecordTime`,`h`.`RecordPersonCode` AS `RecordCode`,`h`.`RecordPersonName` AS `RecordName`,(select ifnull(`e`.`LoginName`,convert(`a0`.`RecordPersonCode` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordCode_zg`,(select ifnull(`e`.`UserName`,convert(`a0`.`RecordPersonName` using utf8mb4)) from ((((`tb_recordinfo` `a0` join `tb_userinfo` `b` on(((convert(`a0`.`RecordPersonCode` using utf8mb4) = `b`.`LoginName`) and (`b`.`Deleted` = 0)))) join `tb_userdetail` `c` on((`b`.`Id` = `c`.`Id`))) left join `basic_institutionalinfo` `d` on(((`c`.`AffiliatedInstitution` = `d`.`Code`) and (`d`.`OrgCode` = 1001) and (`d`.`Deleted` = 0) and (`d`.`ParentId` = (select `basic_institutionalinfo`.`Id` from `basic_institutionalinfo` where (`basic_institutionalinfo`.`Name` = '三方服务团队')))))) left join `tb_userinfo` `e` on(((`d`.`LeaderLoginName` = `e`.`LoginName`) and (`e`.`Deleted` = 0)))) where (`a0`.`WorkOrderId` = `a`.`Id`) limit 1) AS `RecordName_zg`,(case `c`.`Privoder` when 0 then '中瑞' when 1 then '客户' end) AS `Provider`,`c`.`ServiceCode` AS `ServiceCode`,`c`.`ServiceName` AS `ServiceName`,ifnull(`c`.`WorkerCode`,`c`.`ServiceCode`) AS `ServiceCode_Actual`,ifnull(`c`.`WorkerName`,`c`.`ServiceName`) AS `ServicePerson_Actual`,(select group_concat(`s`.`SaleName` separator ',') from `tb_workgoodsinfo` `s` where ((`s`.`WorkOrderId` = `a`.`Id`) and (`s`.`Deleted` = 0))) AS `ItemDetail`,`fn_GetAppointStatusByCode`(`i`.`AppointStatus`) AS `AppointResult`,`i`.`RemarkConcat` AS `AppiontRemark`,concat(ifnull(`d`.`CloseReasonName`,''),ifnull(`d`.`Remark`,'')) AS `CloseReason`,`d`.`ClosedAt` AS `CloseTime`,`c`.`Remark` AS `ServiceRemark` from (((((`tb_workorderinfo` `a` left join `tb_workcarinfo` `b` on(((`b`.`WorkOrderId` = `a`.`Id`) and (`b`.`Deleted` = 0)))) left join `tb_workserviceinfo` `c` on(((`c`.`WorkOrderId` = `a`.`Id`) and (`c`.`Deleted` = 0)))) left join `tb_workorderstatus` `d` on(((`d`.`WorkOrderId` = `a`.`Id`) and (`d`.`Deleted` = 0)))) left join `tb_recordinfo` `h` on(((`h`.`WorkOrderId` = `a`.`Id`) and (`h`.`Deleted` = 0)))) left join `tb_appointmentconcat` `i` on(((`i`.`WorkOrderId` = `a`.`Id`) and (`i`.`Deleted` = 0)))) where ((`a`.`OrderType` in ('0301','1401','1402','1403')) and (`a`.`Deleted` = 0))

Procedure 差异

proc_CreateOrgList

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgList \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgList`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-列表配置

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000'; 

 DECLARE sys_ErrMessage VARCHAR(200); 

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务

 

 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

 if (select 1

     from basic_apollo

     where NameSpace = 'ServiceProviderListType'

       and `Key` = concat('ListType',InOrgCode)

       and Deleted = 0) is true then

     set Result = 1;

     rollback;

     set sys_ErrCode = '10000';

     set sys_ErrMessage = concat(ifnull(sys_ErrMessage,''), ' ', InOrgName, '已有Apollo适用页面配置,请联系管理员核查;');

 else

    INSERT INTO `basic_apollo` (NameSpace,`Key`,`Value`,`Remark`)

 VALUES ('ServiceProviderListType', concat('ListType',InOrgCode),

         '{"Value": [

          {

            "OrgCode": "1004",

            "OrgName": "壹好车服测试商户",

            "ListType": [

              {

                "ListCode": "orderMaintenance",

                "ListName": "运营工单",

                "SortOrder": 1

              },

              {

                "ListCode": "areaOrder",

                "ListName": "监管工单",

                "SortOrder": 2,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "qualityOrder",

                "ListName": "待质检工单",

                "SortOrder": 3,

                "PermissionType": "quality",

                "LimitSql": "(WorkStatus = ''11'' or (WorkStatus = ''8'' and AuditStatus = 1))  and exists(select 1 from tb_recordinfo where {{tableName}}.id = workorderid and deleted = 0)",

                "RuleGroupCodes": "EHCFRule003",

                "SortField": "CompleteTime asc"

              },

              {

                "ListCode": "requestCloseOrder",

                "ListName": "请求关闭工单",

                "SortOrder": 4,

                "LimitSql": "typestatus in(2,3)"

              },

              {

                "ListCode": "myToDoOrder",

                "ListName": "我的待办-通用(App)",

                "SortOrder": 150,

                "PermissionType": "todo",

                "LimitSql": "EXISTS(select 1 from tb_operatinginfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.OperCode=@operCode )",

                "RuleGroupCodes": null,

                "SortField": null

              },

              {

                "ListCode": "myAreaOrder",

                "ListName": "我区域内的工单-通用(App)",

                "SortOrder": 151,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "myDoneOrder",

                "ListName": "我办理过的工单-通用(App)",

                "SortOrder": 152,

                "PermissionType": "done",

                "LimitSql": "WorkStatus<>10 AND EXISTS ( select 1 from tb_workflowinfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.StepName in(''提交处理结果'',''重新提交结果'') and g.OperCode=@operCode and g.DoneAt <= NOW())",

                "RuleGroupCodes": null,

                "SortField": null

              }

            ]

          }

        ]}', '');

    update serviceordercenter.basic_apollo

set Value= json_set(Value, '$.Value[0].OrgCode', InOrgCode,'$.Value[0].OrgName', InOrgName)

where Value ->> '$.Value[0].OrgCode' = '1004'

  and NameSpace = 'ServiceProviderListType'

  and `Key`= concat('ListType',InOrgCode)

  and Deleted = 0;

          #serviceordercenter/serviceordercenterhis.common_listsearchproperty 通用域_搜索字段配置项

         

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('适用全部-附件', '通用列表配置')*/

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       now() as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用列表配置')

   and EntityId='ET9999999823';



/*

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',3,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',4,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',6,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requestclosename',7,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999098','regionQuery','服务地址','string',2,1,'"请选择省/市/区"','pro-urban-areas',0,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'regionquery',2,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\"model\\": {\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\"name\\": \\"##\\",\\"paging\\": {\\"pageIndex\\": 1,\\"pageSize\\": 100,\\"noCount\\": true}}}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,null,'text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,null,'select',0,0,'eq',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,null,'select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,null,'text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,null,'text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',5,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',6,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',7,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',8,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',9,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',10,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,0,'in',1,1,1,'[{"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}, {"label": "待提交", "value": "0", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',12,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',13,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,null,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提", "value": "0", "default": false}, {"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0);

*/

#serviceordercenter/serviceordercenterhis.common_listshowproperty 通用域_展示字段配置项

/*select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       'now()' as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置');*/

 INSERT INTO `common_listshowproperty` (`OrderType`,`OrderTypeName`,`SuitFunctionCode`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertySource`,`IsPropertyShow`,`PublishState`,`GroupCode`,`OrgCode`,`OrgName`,`ShowType`,`ShowDetailJson`,`IfShow`,`FieldRegion`,`DataFieldName`,`SortOrder`,`CreatedAt`,`Deleted`)

 select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       now() as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置')

  and EntityId='ET9999999823';

 /*VALUES

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','requestclosename',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999074','requestCloseTime','请求时间',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm:ss\\" }"',1,'body','requestclosetime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999071','appointReason','请求原因',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','appointreason',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"yyyy-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999115','orderTypeName','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertypename',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,1,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0);

*/

    end if;

 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 #日志记录生成模块

 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage;



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgList'                             AS Logger,

        'proc_CreateOrgList'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;





     END

proc_UnDeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_UnDeleteOrderInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_UnDeleteOrderInfo`(

		InOrderId char(12),

        InDeletedId varchar(36)

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年9月4日

#Comment: 工单删除恢复

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

	AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkorderID=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_UnDeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_MoveWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoForBatch \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoForBatch`;

proc_WorkflowJsonCheck_10day

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck_10day \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck_10day`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=NOW()

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里



SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;





#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_HomeDataGenerator

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeDataGenerator \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeDataGenerator`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 智能工单大屏_数据汇总
#CreatedAt: 2023年09月05日08:38:35

  #日志记录定义模块
  DECLARE InDate DATE DEFAULT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
  DECLARE EndDate DATE DEFAULT CURDATE();
  # 今天 CURDATE()
  # 昨天 DATE_ADD(CURDATE(), INTERVAL -1 DAY)
  # 上周一 DATE_ADD(CURDATE(), INTERVAL -7 DAY)
  # 上月1号
  # 去年1月1日
  # 前年1月1日
  DECLARE sys_StartTime  DATETIME;
  DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
  DECLARE sys_ErrMessage VARCHAR(200);
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
  BEGIN GET DIAGNOSTICS CONDITION 1
  sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
  END;
  SET sys_StartTime = CURRENT_TIMESTAMP();

  # 每日
  # 生成基础数据
  call proc_HomeUserArea();
  call proc_HomeOrderdetail(InDate, EndDate);

  ### 大屏地图
  TRUNCATE TABLE home_usermapdaily;
  # 省份
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,1,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.ProCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;
  # 区县
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,3,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.AreaCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;

  # 工单类型 自有服务 三方服务 人员数量
  TRUNCATE TABLE home_usermapdetail;

  DROP TABLE IF EXISTS tm_usermapdetail;
  CREATE TABLE tm_usermapdetail (
  Id bigint unsigned auto_increment comment '自增主键' primary key,
  ProviderCode  varchar(50)                        null comment '服务商编码',
  OrderTypeName varchar(100)                       null comment '工单类型',
  ProCode       varchar(50)                        null comment '区域编码',
  CityCode      varchar(50)                        null comment '区域编码',
  AreaCode      varchar(50)                        null comment '区域编码',
  Ascription    varchar(100)                       null comment '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  LoginName     varchar(50)                        null comment '人员姓名',
  KEY `1` (OrderTypeName),
  KEY `2` (ProviderCode),
  KEY `3` (ProCode),
  KEY `4` (CityCode),
  KEY `5` (AreaCode));

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea
  WHERE OrderTypeName<>'适用全部'
    AND CheckDate=CURDATE();

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT M.ProviderCode,N.OrderTypeName,M.ProCode,M.CityCode,M.AreaCode,M.Ascription,M.LoginName
  FROM (SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea A
  WHERE OrderTypeName='适用全部'
    AND CheckDate=CURDATE()) M
  CROSS JOIN (SELECT DISTINCT OrderTypeName
              FROM home_userarea
              WHERE OrderTypeName<>'适用全部'
                AND CheckDate=CURDATE()) N;

  # 汇总写入正式表--省份
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,ProCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,ProCode;

  # 汇总写入正式表--城市
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,CityCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,CityCode;

  # 汇总写入正式表--区域
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,AreaCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,AreaCode;

  # 汇总写入正式表--全部
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,'ALL',
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName;
  DROP TABLE IF EXISTS tm_usermapdetail;

  ### 服务网络 时间维度: 上月,上周,昨日,今年
  ## 单据
  # 上月
  IF DAY(NOW()) = 1 THEN
  DELETE FROM home_ordercount WHERE DateType=1;
  # 下单量
  INSERT INTO home_ordercount(ProviderCode,ProCode,DateType,CreateCnt)
  SELECT ProviderCode,ProCode,1,
         COUNT(DISTINCT WorkOrderId) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -3 MONTH),'%Y-%m-01')
    AND a.DetailTime10) AS s
  GROUP BY s.ProviderCode,s.ProCode;

  ### 下单数量变化趋势
  # 去年、今年 每月下单量对比 (需要额外初始化数据)
  # 清理单据
  IF DAYOFMONTH(NOW()) = 1 AND DAY(NOW()) = 1 THEN
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 YEAR),'%Y-01-01')
    AND OrderType='ALL';
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < CONCAT(YEAR(CURDATE()), '01-01')
    AND OrderType!='ALL';
  END IF;
  DELETE
  FROM home_ordercreatetrend
  WHERE CheckYear = YEAR(CURDATE())
    AND CheckMonth = MONTH(CURDATE());

  UPDATE home_ordercreatetrend A,
  (SELECT ProviderCode,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,DATE_FORMAT(DetailTime,'%Y-%m')) B
  SET A.CreateCnt=B.CreateCnt
  WHERE A.ProviderCode=B.ProviderCode
    AND A.OrderType='ALL'
    AND A.CheckYear=B.CheckYear
    AND A.CheckMonth=B.CheckMonth;
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT A.ProviderCode,
         'ALL' AS OrderType,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily A
  WHERE A.DetailType=1
    AND A.DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND A.DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND NOT EXISTS(SELECT 1
                   FROM home_ordercreatetrend B
                   WHERE A.ProviderCode=B.ProviderCode
                     AND A.OrderType='ALL'
                     AND B.CheckYear=YEAR(A.DetailTime)
                     AND B.CheckMonth=MONTH(A.DetailTime))
  GROUP BY A.ProviderCode,YEAR(A.DetailTime),MONTH(A.DetailTime);

  # 写Json
  DELETE FROM home_viewdata WHERE DataType=3;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 3, S.ProviderCode,
         JSON_OBJECT("categories", JSON_ARRAY("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"),
          "series",JSON_ARRAY(JSON_OBJECT("name", "去年", "data", JSON_ARRAYAGG(LastYearCnt)),
                              JSON_OBJECT("name", "今年", "data", JSON_ARRAYAGG(ThisYearCnt))
                      )
          )
  FROM (
  SELECT M.ProviderCode,M.Monthy,
    MAX(IF(M.Year=(YEAR(CURDATE())-1),M.CreateCnt,0)) AS LastYearCnt,
    MAX(IF(M.Year=YEAR(CURDATE()),M.CreateCnt,0)) AS ThisYearCnt
  FROM (
  SELECT PC.ProviderCode,H.Monthy,Y.Year,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
  SELECT 1 AS Monthy UNION
  SELECT 2 UNION
  SELECT 3 UNION
  SELECT 4 UNION
  SELECT 5 UNION
  SELECT 6 UNION
  SELECT 7 UNION
  SELECT 8 UNION
  SELECT 9 UNION
  SELECT 10 UNION
  SELECT 11 UNION
  SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_ordercreatetrend P
  WHERE P.OrderType='ALL'
  AND P.OrderType IS NOT NULL
  AND P.ProviderCode<>''
  AND P.CheckYear IN (YEAR(CURDATE()),YEAR(CURDATE()) - 1)
  GROUP BY P.ProviderCode) AS PC
  CROSS JOIN (SELECT YEAR(CURDATE()) AS Year UNION
  SELECT (YEAR(CURDATE()) - 1)) Y
  LEFT JOIN home_ordercreatetrend D
    ON D.ProviderCode=PC.ProviderCode
    AND D.CheckMonth=H.Monthy
    AND D.CheckYear=Y.Year
    AND D.OrderType='ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
  GROUP BY PC.ProviderCode,H.Monthy,Y.Year) AS M
  GROUP BY M.ProviderCode, M.Monthy
  ORDER BY 1,2
  ) AS S
  GROUP BY S.ProviderCode;
  ### 各工单类型下单明细
  # 家充桩安装、公桩巡检、公桩维修、公桩保养
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT ProviderCode,OrderType,COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,OrderType,YEAR(DetailTime),MONTH(DetailTime);
  
  #写Json
  DELETE FROM home_viewdata WHERE DataType=4;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 4, M.ProviderCode,
         JSON_OBJECT("categories",
             JSON_ARRAY("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"),
             "series",JSON_ARRAYAGG(JSON_OBJECT("name", M.TypeName, "data", M.CreateCnt)))
  FROM (SELECT S.ProviderCode,S.TypeName,JSON_ARRAYAGG(S.CreateCnt) AS CreateCnt
  FROM (SELECT PC.ProviderCode,H.Monthy,T.TypeName,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
    SELECT 1 AS Monthy UNION
    SELECT 2 UNION
    SELECT 3 UNION
    SELECT 4 UNION
    SELECT 5 UNION
    SELECT 6 UNION
    SELECT 7 UNION
    SELECT 8 UNION
    SELECT 9 UNION
    SELECT 10 UNION
    SELECT 11 UNION
    SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
    FROM home_ordercreatetrend P
    WHERE P.OrderType<>'ALL'
    AND P.OrderType IS NOT NULL
    AND P.ProviderCode<>''
    AND P.CheckYear=YEAR(CURDATE())
    GROUP BY P.ProviderCode) AS PC
  LEFT JOIN basic_ordertypeinfo T
    ON T.ServiceProviderCode=PC.ProviderCode
    AND T.Deleted=0
  LEFT JOIN home_ordercreatetrend D
    ON D.OrderType<>'ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
    AND PC.ProviderCode=D.ProviderCode
    AND D.OrderType=T.TypeCode
    AND D.CheckYear=YEAR(CURDATE())
    AND D.CheckMonth=H.Monthy
  WHERE H.Monthy<=MONTH(CURDATE())
  GROUP BY PC.ProviderCode,H.Monthy,T.TypeName
  ORDER BY 1,2) AS S
  GROUP BY S.ProviderCode,S.TypeName) AS M
  GROUP BY M.ProviderCode;
  
  END IF;
  ### 累计下单客户TOP10(日更)
  # 客户下单量、占比
  TRUNCATE TABLE home_ordercusttop;
  INSERT INTO home_ordercusttop(ProviderCode,CustomerName,CreateCnt,TotalCnt)
  SELECT S.ProviderCode,S.CustomerName,S.CreateCnt,S.TotalCnt
  FROM (
  SELECT x.ProviderCode,x.CustomerName,
         x.CreateCnt,y.TotalCnt,
         ROW_NUMBER() OVER(PARTITION BY x.ProviderCode ORDER BY x.CreateCnt DESC) AS Num
  FROM (
  SELECT ProviderCode,CustomerName,
         COUNT(1) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode,CustomerName) AS x
  INNER JOIN (
  SELECT ProviderCode,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode) y
    ON x.ProviderCode=y.ProviderCode) AS S
  WHERE S.Num<=10;

  ### TOP3客户近6个月下单趋势 (日更)
  TRUNCATE TABLE home_ordercusttrend;
  INSERT INTO home_ordercusttrend(ProviderCode,CustomerName,CreateCnt,CheckMonth)
  SELECT a.ProviderCode,a.CustomerName,COUNT(1) AS CreateCnt,
         DATE_FORMAT(a.DetailTime,'%Y-%m') AS CheckMonth
  FROM home_orderdetaildaily a,
       (SELECT c.ProviderCode,c.CustomerName,
               ROW_NUMBER() OVER(PARTITION BY c.ProviderCode ORDER BY c.CreateCnt DESC) AS Num
       FROM
       (SELECT b.ProviderCode,b.CustomerName,COUNT(1) AS CreateCnt
        FROM home_orderdetaildaily b
        WHERE b.CheckDate=CURDATE()
        GROUP BY b.ProviderCode,b.CustomerName ) c) d
  WHERE a.DetailType=1
    AND a.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -6 MONTH),'%Y-%m-01')
    AND a.DetailTime10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 关闭工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,3,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=11
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 质检驳回工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,4,
         COUNT(DISTINCT WorkOrderId) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=8
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务客户总数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,5,
         COUNT(DISTINCT CustomerName) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务施工人数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,6,
         COUNT(DISTINCT ServiceCode) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 写入Json
  DELETE FROM home_viewdata WHERE DataType = 1;
  INSERT INTO home_viewdata(DataType,ProviderCode,JsonValue)
  SELECT 1, ProviderCode, JSON_ARRAYAGG(S.J) AS data
    FROM (
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "下单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=1
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "完成工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=2
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "关闭工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=3
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "质检驳回工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=4
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务客户总数",
        "value", IFNULL(CntNum,0),
        "suffixText", "个") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=5
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务施工人数",
        "value", IFNULL(CntNum,0),
        "suffixText", "人") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=6) AS S
    GROUP BY S.ProviderCode;

  ### 近1周作业结束时间段分布
  TRUNCATE TABLE home_worktimetrend;
  # 工作日、非工作日
  INSERT INTO home_worktimetrend(ProviderCode, WorkHour, WorkDayCnt, WeekendCnt)
  SELECT PC.ProviderCode,H.WorkHour,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),0,1))) AS WorkDayCnt,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),1,0))) AS WeekendCnt
  FROM (
  SELECT 2 AS WorkHour UNION
  SELECT 4 UNION
  SELECT 6 UNION
  SELECT 8 UNION
  SELECT 10 UNION
  SELECT 12 UNION
  SELECT 14 UNION
  SELECT 16 UNION
  SELECT 18 UNION
  SELECT 20 UNION
  SELECT 22 UNION
  SELECT 24) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_orderdetaildaily P
  WHERE P.DetailType=4
  AND P.DetailTime<=DATE_ADD(CURDATE(),INTERVAL -7 DAY)
  AND P.DetailTime
                

proc_CreateOrg

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrg \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrg`( InOrgName varchar(50),InShortName varchar(10))
    DETERMINISTIC
BEGIN

    #Author: wangxh

#Create: 2022-10-31 11:48:24

#Comment: 创建商户-基础信息(商户、团队、接单范围、监管范围)

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgCode varchar(10) ;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

	

     select Max(ProviderCode)+1 into  InOrgCode 

        from basic_serviceprovider ;

	

	INSERT INTO `basic_serviceprovider` (`Id`,`ProviderCode`,`ProviderName`,`ShortName`,`Enable`,`ExpireTime`,`BeginWorkTime`,`EndWorkTime`,`UserCenterOrgId`,`OperateAttributes`,`CreatedById`,`CreatedAt`,`Deleted`)

VALUES

       (fn_nextval('SP'),InOrgCode, InOrgName,InShortName,1,'2025-04-03','08:31:00','18:01:00',null,0 #自营 1非自营

       ,null,now(),0);

#serviceordercenter.basic_teaminfo 业务域_服务团队信息

INSERT INTO serviceordercenter.`basic_teaminfo` (`Id`,`TeamName`,`TeamCode`,`ProviderCode`,`ProviderName`,`ServicerCode`,`ServicerName`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('TI'), InOrgName,concat(InOrgCode,'0001'),InOrgCode, InOrgName,InOrgCode, InOrgName,1,now(),0);

#serviceordercenter.basic_institutionalinfo 业务域_机构信息表 #人员管理-团队管理

INSERT INTO serviceordercenter.`basic_institutionalinfo` (`Id`,`ParentId`,`Code`,`Name`,`Level`,`SortOrder`,`OrgCode`,`TeamCode`,`LeaderLoginName`,`InsertTime`,`DeletedAt`,`Deleted`)

VALUES

       (fn_nextval('IJ'),null,concat(InOrgCode,'0001'), InOrgName,1,1,InOrgCode,concat(InOrgCode,'0001'),null,now(),null,0);

#serviceordercenter.basic_rulegroupinfo 基础信息_规则组信息表

INSERT INTO serviceordercenter.`basic_rulegroupinfo` (`Id`,`GroupCode`,`GroupName`,`TeamCode`,`ApplicationId`,`ApplicationName`,`Priority`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('RG'),'EHCFRule001','接单范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',1,1,now(),0),

       (fn_nextval('RG'),'EHCFRule003','监管范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',3,1,now(),0);



	#恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



    #返回结果

    SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

    SELECT Result AS IsSuccess,

    'CreateOrg' AS Logger,

    'proc_CreateOrg' AS ProcedureName,

    TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

    sys_ErrCode AS ErrCode,

    sys_ErrMessage AS ErrMessage,

    NOW() AS LogTime;



END

proc_DelHisWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE InDeleted int;

    DECLARE InWorkOrderId VARCHAR(36) DEFAULT InOrderId;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;

    delete a

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    delete a

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo_his a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfohis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_workorderevaluateinfo a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    delete a

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;





    delete a

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId

    and b.deleted = 0;

    delete a

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    select Deleted into InDeleted from tb_workorderinfo where id = InOrderId;



    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenter.workflowcompleteitems

    where TargetEntityId = InOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN



        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;

    end if;

    if (ORuntimeItemId is null and ((SELECT ID

                                     FROM serviceordercenter.workflowcompletesteps

                                     WHERE DELETED = 0

                                       AND RuntimeItemId = OCompleteItemId

                                       AND NAME = '结束') is not null))

    then



        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;

    end if;

    set foreign_key_checks = 1;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

       # UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        #UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'DelHisWorkOrderInfoBySingle'                   AS Logger,

           'proc_DelHisWorkOrderInfoBySingle'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;



END

proc_AFCReportStatisticsDaily

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AFCReportStatisticsDaily \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AFCReportStatisticsDaily`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AFCReportStatisticsDaily`()
    COMMENT 'AFC统计分析工单明细报表'
BEGIN

#Create: 2021年04月12日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE Result INT(1) DEFAULT 0;



	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



  TRUNCATE TABLE rp_afcworkorderdetail_statistics;



  #开启事务

  START TRANSACTION;



	INSERT INTO rp_afcworkorderdetail_statistics (MainWorkOrderId,WorkOrderId,SubjectCode,SubjectName,

  WorkStatus,ServiceCode,ServiceName,VisitorRole,ServiceProCode,ServiceProName,ProCode,ProName,CustomerId,

  CustomerName,CustSettleId,CustSettleName, CustomerCommitmentDate,RequiredTime,StateCycle,LastRecordTime,

  LastAssignTime,RecordingDuration,AuditRejectState,TotalDistance,RoadBridgePrice,Accommodation,

  TotalOilPrice,TotalInTrafficPrice,RefundPrice,Achievements,Amount,ReceiveAmounts,BaseSalary,IsAddressTrue,

  IsSecondLink,ApprovalResult,IsSceneHandle,OverdueDays,OverduePrincipal,RetreatTime,ReturnedResult,FollowFrequency)



	SELECT t3.RelateId AS MainWorkOrderId,t2.Id AS WorkOrderId,t4.SubjectCode AS SubjectCode,

  t4.SubjectName AS SubjectName,t2.WorkStatus AS WorkStatus,t5.ServiceCode AS ServiceCode,

  t5.ServiceName AS ServiceName,m.VisitorRole AS VisitorRole,



	(

		SELECT t2.ProCode

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

	    AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	)AS ServiceProCode,



	(

		SELECT t2.ProName

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

		AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	) AS ServiceProName,

	t2.ProCode AS ProCode,t2.ProName AS ProName,t2.CustomerId AS CustomerId,t2.CustomerName AS CustomerName,

  t2.CustSettleId AS CustSettleId,t2.CustSettleName AS CustSettleName,

	if((cast(json_extract(m.RecordJson, '$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),

  CAST(LEFT(json_unquote(json_extract(m.RecordJson, '$.CustomerCommitmentDate')),10) AS date),NULL) AS CustomerCommitmentDate,

	t2.RequiredTime AS RequiredTime,

	#质检中11,质检驳回12,已完成9,等待工程师接单4,已出发13,已到达14,15,已接单6,

	fn_GetAfcStateCycleById(t2.Id) AS StateCycle,

	fn_GetAFCLastRecordTimeById(t2.Id) AS LastRecordTime,

	fn_GetAfcLastDispatcherTimeById(t2.Id) AS LastAssignTime,

	(SELECT SUM(Duration) FROM tb_workresourceinfo a

			WHERE  a.WorkOrderId = t1.Id

			AND a.SourceType = 4

			AND a.Duration IS NOT NULL

			AND a.Deleted = 0

	) AS RecordingDuration,

	IF (fn_GetAFCServiceAuditTimesById(t1.Id) > 0, 1, 0)AS AuditRejectState,

	(t1.ReimbursableDistance + t1.AdjustReimbursableDistance + t1.ReturnDistance) AS TotalDistance,

	k1.FeeValue AS RoadBridgePrice,

	k2.FeeValue AS Accommodation,

	(IFNULL(k3.FeeValue,0) + IFNULL(k4.FeeValue,0)) AS TotalOilPrice,

	(IFNULL(k5.FeeValue,0) + IFNULL(k6.FeeValue,0)) AS TotalInTrafficPrice,

  IFNULL(k9.FeeValue,0) AS RefundPrice,

	k7.FeeValue AS Achievements,

	t10.Amount AS Amount,

	k8.FeeValue AS ReceiveAmounts,

	IF(t12.ProCode = '520000',100,85) AS BaseSalary,

	CASE m.RecordJson -> '$.AddressInfoTopCode'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsAddressTrue,

	#是否复联

	#base地址省份对应的外访人的派单机构中

    #1、子单状态为【已完成】【质检中】【质检驳回】

    #2、服务科目【面访谈判】

    #3、满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一种为【可联】即为复联的主单数量

    #上汽客户逻辑:满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一个联系结果为【接通】

            if(

                   (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult') is not null),

                   (if((1 member of (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),1,

                       if((1 member of (json_extract(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),1,

                          if(1 member of (json_extract(m.RecordJson, '$.IsOtherAccess')),1,0)))

                       ),

                   (if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 0),

                       if((json_extract(m.RecordJson, '$.CustomerIsContact') = 0),

                          if((json_extract(m.RecordJson, '$.IsOtherAccess') = 0), 0, 1), 1),

                       if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 1), 1, NULL)))) AS IsSecondLink,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    LIMIT 1)=1,1,0) AS ApprovalResult,

	#是否现场处理IsSiteTreatment

	CASE m.RecordJson -> '$.IsSiteTreatment'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsSceneHandle,

	t11.OverdueDays AS OverdueDays,

  t11.OverduePrincipal AS OverduePrincipal,

	t11.RetreatTime AS RetreatTime,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    AND t13.ReturnedTypeCode IN ('ReturnType002','ReturnType003','ReturnType005')

    LIMIT 1)=1,1,0) AS ReturnedResult,

	t13.v_FollowFrequency as FollowFrequency

	FROM tb_afcworkorderinfo AS t1

	LEFT JOIN tb_workorderinfo AS t2

	  ON t1.Id = t2.Id

	  AND t2.Deleted = 0

	LEFT JOIN tb_workorderrelation AS t3

	  ON t3.WorkOrderId = t1.Id

	  AND t3.Deleted = 0

	LEFT JOIN tb_workservicesubject AS t4

	  ON t4.WorkOrderId = t1.Id

	  AND t4.Deleted = 0

	LEFT JOIN tb_workserviceinfo AS t5

	  ON t5.WorkOrderId = t1.Id

	  AND t5.Deleted = 0

  left join tb_afcfeedetail k1

    on k1.WorkOrderId= t2.Id

    and k1.Deleted= 0

    and k1.PriceTypeCode= 'RoadBridgePrice'

	left join tb_afcfeedetail k2

    on k2.WorkOrderId= t2.Id

    and k2.Deleted= 0

    and k2.PriceTypeCode= 'Accommodation'

	#油费

	left join tb_afcfeedetail k3

    on k3.WorkOrderId= t2.Id

    and k3.Deleted= 0

    and k3.PriceTypeCode= 'OilPrice'

	#油补

	left join tb_afcfeedetail k4

    on k4.WorkOrderId= t2.Id

	  and k4.Deleted= 0

	  and k4.PriceTypeCode= 'OilSubsidy'

	#公共交通费

	left join tb_afcfeedetail k5

    on k5.WorkOrderId= t2.Id

	  and k5.Deleted= 0

	  and k5.PriceTypeCode= 'InTrafficPrice'

	#打车费

	left join tb_afcfeedetail k6

    on k6.WorkOrderId= t2.Id

	  and k6.Deleted= 0

	  and k6.PriceTypeCode= 'TaxiFare'

	left join tb_afcfeedetail k7

    on k7.WorkOrderId= t2.Id

    and k7.Deleted= 0

    and k7.PriceTypeCode= 'Achievements'

	left join tb_afcfeedetail k8

    on k8.WorkOrderId= t2.Id

    and k8.Deleted= 0

    and k8.PriceTypeCode= 'ReceiveAmounts'

  #入账金额

  left join tb_afcfeedetail k9

    on k9.WorkOrderId= t2.Id

    and k9.Deleted= 0

    and k9.PriceTypeCode= 'RefundPrice'

	left join tb_afcfeeinfo as t10

	  on t10.WorkOrderId = t1.Id

	  and t10.Deleted = 0

	left join tb_afcworkfinancerecord m

	  on m.WorkOrderId = t2.Id

	  and m.Deleted = 0

	left join tb_afcworkfinanceinfo as t11

	  on t11.WorkOrderId = t1.Id

	  and t11.Deleted = 0

	left join tb_workaddressinfo as t12

	  on t12.WorkOrderId = t1.Id

	  and t12.Deleted = 0

	left join tb_workbussinessjsoninfo t13 on t1.id = t13.WorkOrderId and t13.Deleted = 0

	WHERE t1.Deleted = 0;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  Result AS IsSuccess,

  'AFCReportStatisticsDaily' AS Logger,

  'proc_AFCReportStatisticsDaily'    AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

  IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

  IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

  NOW() AS LogTime;



END

proc_AfcCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcCompletedWorkOrderById`(IN InWorkOrderId char(12), IN InWorkSatus smallint)
    COMMENT 'AFC根据id获取已完成工单明细'
BEGIN

    #Create: 2021年01月05日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_afcworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_afcworkorderdetail` (WorkOrderId, `OrderType`, `ContractNumber`, `SubjectName`, `SubjectCode`,

                                         `CustomerName`, `CustomerId`,

                                         `WorkStatus`, `AppCode`, `WorkStatusName`, `CreatePersonCode`,

                                         `CreatePersonName`, `CreatedTime`, `UserName`,

                                         `RequiredTime`, `CurrentPersonCode`, `CurrentPersonName`, `OverdueDays`,

                                         `IntervieweeType`, `IntervieweeName`,

                                         `Typee`, `ProCode`, `ProName`, `CityCode`, `CityName`, `AreaCode`, `AreaName`,

                                         `Address`, `IsNightVisit`, `TripMode`,

                                         `Achievements`, `NightVisitFee`, `TotalDistance`, `ReturnDistance`, `OilPrice`,

                                         `OilSubsidy`, `RoadBridgePrice`,

                                         `InTrafficPrice`, `TaxiFare`, `Accommodation`, `DifferenceFare`,

                                         `LimitationFee`, `ReportingQuality`, `OverduePrincipal`,

                                         `RefundPrice`, ReceiveAmounts, `UseTime`, `AddressType`, `IsFindPerson`,

                                         `IsOtherAccess`, `AddressInfoTopName`,

                                         `IsSecondLink`, `CustomerIsContact`, `LinkmanIsContact`, `IsFindCar`,

                                         `CarUseInfo`, `CustomerCommitmentDate`,

                                         `RiskLevel`, `NeedLawsuit`, `NeedSeizureCar`, `CaseTime`, `RetreatTime`,

                                         `FirstDistributeTime`,

                                         SetOutTime, EndVisitTime, CreatedRemark, ReimbursableDistance,

                                         AdjustReimbursableDistance, BelongingRegion,

                                         `SendPerson`, `SignTime`, `LastRecordTime`, `ServiceCode`, `ServiceName`,

                                         `Department`, `VisitorRole`, `FirstOrderAuditPerson`,

                                         `FirstOrderAuditTime`, PassOrderAuditTime, PassOrderAuditPerson,

                                         `NoAuditTimes`, `FirstAuditRejectRemark`, `RequestCloseTime`,

                                         `RequestClosePerson`, `CloseReasonName`, `ClosedAt`, `AcceptTime`,

                                         `CompleteTime`, Amount, AppointTime, ExpressFee, FollowFrequency,

                                         AbnormalRoadCondition, LastNegotiatorTime, ReportDeadline,

                                         OrderReturnedTypeName, AssistComplete, ResPrincipal, UnFollowDays,

                                         SignAddr, UnusualDistance, UnusualSign, AuditStatus,

                                         AccommodateSign,OptimalReturnDistance,OverdueGrade,FeeRemark,FindWho,

                                         AdjustReimReturnDistance,SecondLinkMan,SecondVisitStatus,ReturnCountReward,ReturnPriceReward,

                                         `CreatedAt`,

                                         `Deleted`)



    SELECT WorkOrderId,

           `OrderType`,

           `ContractNumber`,

           `SubjectName`,

           `SubjectCode`,

           `CustomerName`,

           `CustomerId`,

           `WorkStatus`,

           `AppCode`,

           `WorkStatusName`,

           `CreatePersonCode`,

           `CreatePersonName`,

           `CreatedTime`,

           `UserName`,

           `RequiredTime`,

           `CurrentPersonCode`,

           `CurrentPersonName`,

           `OverdueDays`,

           `IntervieweeType`,

           `IntervieweeName`,

           `Typee`,

           `ProCode`,

           `ProName`,

           `CityCode`,

           `CityName`,

           `AreaCode`,

           `AreaName`,

           `Address`,

           `IsNightVisit`,

           `TripMode`,

           `Achievements`,

           `NightVisitFee`,

           `TotalDistance`,

           `ReturnDistance`,

           `OilPrice`,

           `OilSubsidy`,

           `RoadBridgePrice`,

           `InTrafficPrice`,

           `TaxiFare`,

           `Accommodation`,

           `DifferenceFare`,

           `LimitationFee`,

           `ReportingQuality`,

           `OverduePrincipal`,

           `RefundPrice`,

           ReceiveAmounts,

           `UseTime`,

           `AddressType`,

           `IsFindPerson`,

           `IsOtherAccess`,

           `AddressInfoTopName`,

           `IsSecondLink`,

           `CustomerIsContact`,

           `LinkmanIsContact`,

           `IsFindCar`,

           `CarUseInfo`,

           `CustomerCommitmentDate`,

           `RiskLevel`,

           `NeedLawsuit`,

           `NeedSeizureCar`,

           `CaseTime`,

           `RetreatTime`,

           `FirstDistributeTime`,

           SetOutTime,

           EndVisitTime,

           CreatedRemark,

           ReimbursableDistance,

           AdjustReimbursableDistance,

           BelongingRegion,

           `SendPerson`,

           `SignTime`,

           `LastRecordTime`,

           `ServiceCode`,

           `ServiceName`,

           `Department`,

           `VisitorRole`,

           `FirstOrderAuditPerson`,

           `FirstOrderAuditTime`,

           PassOrderAuditTime,

           PassOrderAuditPerson,

           `NoAuditTimes`,

           `FirstAuditRejectRemark`,

           `RequestCloseTime`,

           `RequestClosePerson`,

           `CloseReasonName`,

           `ClosedAt`,

           `AcceptTime`,

           `CompleteTime`,

           Amount,

           AppointTime,

           ExpressFee,

           FollowFrequency,

           AbnormalRoadCondition,

           LastNegotiatorTime,

           ReportDeadline,

           OrderReturnedTypeName,

           AssistComplete,

           ResPrincipal,

           UnFollowDays,

           SignAddr,

           UnusualDistance,

           UnusualSign,

           AuditStatus,

           AccommodateSign,

           OptimalReturnDistance,

           OverdueGrade,

           FeeRemark,

           FindWho,

           AdjustReimReturnDistance,

           SecondLinkMan,

           SecondVisitStatus,

					 ReturnCountReward,

					 ReturnPriceReward,

					 

           `CreatedAt`,

           `Deleted`



    FROM (

             select row_number() OVER (PARTITION BY `a`.`Id` )                               AS `num`,

                    a.Id                                                                     AS WorkOrderId,

                    a.OrderType,

                    h.ContractNumber,

                    f.SubjectName                                                            AS SubjectName,

                    f.SubjectCode                                                            AS SubjectCode,

                    g.CustomerName,

                    g.CustomerId,

                    ifnull(InWorkSatus, `a`.`WorkStatus`)                                    AS `WorkStatus`,

                    `a`.`AppCode`                                                            AS `AppCode`,

                    fn_GetStatusNameByCode(ifnull(InWorkSatus, `a`.`WorkStatus`))            AS WorkStatusName,

                    a.CreatePersonCode,

                    a.CreatePersonName,

                    `a`.`CreatedAt`                                                          AS `CreatedTime`,

                    h.BorrowerName                                                           AS `UserName`,

                    `a`.`RequiredTime`,

                    fn_GetCurrentPersonInfo(a.Id, 1)                                         AS CurrentPersonCode,

                    fn_GetCurrentPersonInfo(a.Id, 2)                                         AS CurrentPersonName,



                    h.OverdueDays,

                    CASE g.IntervieweeType

                        WHEN '0' THEN '借款人'

                        WHEN '1' THEN '共借人'

                        WHEN '2' THEN '担保人'

                        WHEN '3' THEN '亲友'

                        WHEN '4' THEN '配偶'

                        WHEN '5' THEN '承租人'

                        WHEN '6' THEN '实际用车人'

                        when '7' then '申请人'

                        ELSE '' END                                                          AS IntervieweeType,

                    g.IntervieweeName,

                    (case `e`.`AddressTypeCode`

                         when '200' then '户籍地址'

                         when '201' then '居住地址'

                         when '202' then '单位地址'

                         when '203' then '其他地址(居住)'

                         when '204' then '其他地址(单位)'

                         when '205' then '房产地址'

                         when '206' then '其他地址'

                         else null end)                                                      AS `Typee`,

                    e.ProCode,

                    e.ProName,

                    e.CityCode,

                    e.CityName,

                    e.AreaCode,

                    e.AreaName,

                    e.Address,

                    IF(g.IsNightVisit = 0, '否', '是')                                         AS IsNightVisit,

                    IF(g.TripMode = 0, '自驾', '非自驾')                                          AS TripMode,

                    k1.FeeValue                                                              AS Achievements,

                    k2.FeeValue                                                              AS NightVisitFee,

                    g.TotalDistance,

                    g.ReturnDistance,

                    k3.FeeValue                                                              AS OilPrice,

                    k4.FeeValue                                                              AS OilSubsidy,

                    k5.FeeValue                                                              AS RoadBridgePrice,

                    k6.FeeValue                                                              AS InTrafficPrice,

                    k7.FeeValue                                                              AS TaxiFare,

                    k8.FeeValue                                                              AS Accommodation,

                    k9.FeeValue                                                              AS DifferenceFare,

                    k11.FeeValue                                                             AS LimitationFee,

                    k12.FeeValue                                                             AS ReportingQuality,

                    h.OverduePrincipal,

                    k13.FeeValue                                                             AS RefundPrice,

                    k14.FeeValue                                                             AS ReceiveAmounts,

                    #时长统计

                    CONCAT(

                            FLOOR(TIMESTAMPDIFF(SECOND, a.CreatedAt,

                                                fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                      ) / 86400), '天',

                            TIMESTAMPDIFF(HOUR, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 24, '时',

                            TIMESTAMPDIFF(MINUTE, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 60, '分'

                        )                                                                    AS UseTime,



                    CASE g.AddressType

                        WHEN '0' THEN '城市'

                        WHEN '1' THEN '农村'

                        WHEN '2' THEN '单位'

                        END                                                                  AS AddressType,



                    CASE m.RecordJson -> '$.IsFindPerson'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsFindPerson,



                    CASE m.RecordJson -> '$.IsOtherAccess'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsOtherAccess,





                    CASE m.RecordJson -> '$.AddressInfoTopCode'

                        WHEN '0' THEN '地址存在且有效'

                        WHEN '1' THEN '地址存在但无效'

                        WHEN '2' THEN '地址虚假/不存在'

                        ELSE '' END                                                          AS AddressInfoTopName,



                    #是否复联

                    #现场拨打电话情况,客户/联系人有一种情况为“可联”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                    #上汽客户逻辑:现场拨打电话情况,客户/联系人有一个联系结果为“接通”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                        IF(

                    (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult') IS NOT NULL),

                    (IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),'是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),'是',

                     IF(1 member of (JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess')),'是','否')))

                    ),

                    (IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 0 or CAST(m.RecordJson->>'$.LinkmanIsContact' AS CHAR CHARSET utf8mb4)='NULL'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.CustomerIsContact') = 0),

                     IF((JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess') = 0), '否', '是'), '是'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 1), '是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactCommonList[*].ContactResult'))),'是',NULL))))) AS IsSecondLink,

                    #复联人

                    #新增字段,取值为关系类型(①现场拨打电话情况中选择“可联”的关系类型,含客户、联系人-关系类型;②是否新增有效联系方式选择“是”的关系类型)

                    # 若存在多个关系类型,则用【、】隔开,关系类型为【亲属】时,需拼接备注信息

                    fn_afcgetsecondlinkrelationbyid(a.Id,a.CustomerName) as SecondLinkMan,

                    m.RecordJson -> '$.CustomerIsContact'                                    AS CustomerIsContact,

                    m.RecordJson -> '$.LinkmanIsContact'                                     AS LinkmanIsContact,



                    CASE json_extract(`m`.`RecordJson`, '$.IsFindCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `IsFindCar`,



                    IF(cast(json_extract(`m`.`RecordJson`, '$.CarUseInfo') as char charset utf8mb4) = 'null', NULL,

                       json_unquote(json_extract(`m`.`RecordJson`, '$.CarUseInfo')))         AS `CarUseInfo`,

                    if((cast(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10) as char charset utf8mb4) <>

                        'null'),

                       CONVERT(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10), date),

                       NULL)                                                                 AS `CustomerCommitmentDate`,



                    CASE m.RecordJson -> '$.RiskLevel'

                        WHEN '0' THEN '低'

                        WHEN '1' THEN '中'

                        WHEN '2' THEN '高'

                        END                                                                  AS RiskLevel,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedLawsuit')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedLawsuit`,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedSeizureCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedSeizureCar`,



                    h.CaseTime,

                    h.RetreatTime,

                    g.FirstDistributeTime,

                    fn_GetAFCSetOutTimeById(`a`.`Id`)                                        AS SetOutTime,

                    fn_GetAFCEndVisitTimeById(`a`.`Id`)                                      AS EndVisitTime,

                    a.Remark                                                                 AS CreatedRemark,

                    g.ReimbursableDistance                                                   AS ReimbursableDistance,

                    g.AdjustReimbursableDistance                                             AS AdjustReimbursableDistance,

                    h.UserProName                                                            AS BelongingRegion,



                    `fn_GetAfcDispatcherName`(`a`.`Id`)                                      AS SendPerson,

                    n.SignTime,

                    #最新备案时间

                    fn_GetAFCLastRecordTimeById(a.Id)                                        AS LastRecordTime,

                    i.ServiceCode,

                    i.ServiceName,

                    m.Department,

                    m.VisitorRole,

                    #质检 见壹好车服质检报表

                    `fn_GetServiceAuditFirstPersonById`(`a`.`Id`)                            AS `FirstOrderAuditPerson`,

                    `fn_GetServiceAuditFirstTimeById`(`a`.`Id`)                              AS `FirstOrderAuditTime`,

                    fn_GetAFCPassAuditTimeById(`a`.`Id`)                                     AS PassOrderAuditTime,

                    fn_GetAFCPassAuditPersonNameById(`a`.`Id`)                               AS PassOrderAuditPerson,

                    #质检不通过次数

                    fn_GetAFCServiceAuditTimesById(`a`.`Id`)                                 AS NoAuditTimes,

                    `fn_GetServiceAuditRejectReasonById`(`a`.`Id`)                           AS `FirstAuditRejectRemark`,

                    fn_GetRequestCloseTimeById(`a`.`Id`)                                     AS RequestCloseTime,

                    o1.ClosePersonName                                                       AS `RequestClosePerson`,

                    #关闭原因

                    IF(o1.CloseReasonCode = 'CloseReason8101-00', o1.Remark,

                       o1.CloseReasonName)                                                   AS CloseReasonName,

                    o1.ClosedAt,

                    fn_GetAFCAcceptTimeById(a.Id)                                            AS AcceptTime,

                    `fn_GetWorkFlowTimeInfo`(`a`.`Id`, '结束')                                 AS `CompleteTime`,

                    l.Amount,

                    p.AppointTime                          AppointTime,

                    q.FeeValue                                                               as ExpressFee,

                    case p.v_FollowFrequency

                        when 0 then '低频跟进'

                        when 1

                            then '高频跟进' end                                                  as FollowFrequency,

                    if(fn_GetWorkFlowTimeInfo(a.id, '路况异常签到') is null, '否', '是')             as AbnormalRoadCondition,

                    p.v_LastNegotiatorTime                                                   as LastNegotiatorTime,

                    p.v_ReportDeadline                                                       AS ReportDeadline,

                    fn_GetAfcReturnTypeByCode(p.BussinessJson ->> '$.OrderReturnedTypeCode') as OrderReturnedTypeName,

                    CASE P.v_AfcCompleteType

                        WHEN 1 THEN '是'

                        when 3 then '是'

                        when 2 then '否'

                        end                                                                  as AssistComplete,

                    h.ResPrincipal                                                           as ResPrincipal,

                    p.v_UnFollowDays                                                         as UnFollowDays,

                    n.SignAddr                                                               as SignAddr,

                    p.BussinessJson ->> '$.UnusualDistance'                                  as UnusualDistance,

                    p.BussinessJson ->> '$.UnusualSign'                                      as UnusualSign,

                    case fn_GetFeeTypeById(a.id,'住宿费',ifnull(a.ServiceProviderCode,'1001'),2)

                        when 0 then null

                        when 1 then '待审核'

                        when 2 then '已通过'

                        when 3 then '未通过'

                        else null end                                                        as AuditStatus,

                    s.SignTime                                                               as AccommodateSign,

                    g.OptimalReturnDistance ,

                    BussinessJson->>'$.overdueGrade' as OverdueGrade,

           l.Remark as FeeRemark,

                    if(m.RecordJson->>'$.IsFindPerson'=1,m.RecordJson->>'$.FindWho',null) as FindWho ,

                    g.AdjustReimReturnDistance,

                    case P.V_SecondVisitStatus when 0 then '待走访'

                        when 1 then '走访中'

                        when 2 then '走访完成'

                        when 3 then '走访拒绝' end

                        AS SecondVisitStatus,

					k15.FeeValue   AS ReturnCountReward,

                    k16.FeeValue                                                             AS ReturnPriceReward,

                    NOW()                                                                    AS CreatedAt,

                    0                                                                        AS Deleted

             from `tb_workorderinfo` `a`

                      inner join tb_workaddressinfo e

                                 on e.WorkOrderId = a.Id

                                     and e.Deleted = 0

                      left join tb_workservicesubject f

                                on f.WorkOrderId = a.Id

                                    and f.Deleted = 0

                      inner join tb_afcworkorderinfo g

                                 on g.Id = a.Id

                                     and g.Deleted = 0

                      left join tb_afcworkfinanceinfo h

                                on h.WorkOrderId = a.Id

                      left join tb_workserviceinfo i

                                on i.WorkOrderId = a.Id

                                    and i.Deleted = 0

                      left join `tb_afcfeeinfo` `l` on `l`.`WorkOrderId` = `a`.`Id`

                 and `l`.`Deleted` = 0

                      left join `tb_afcfeedetail` `k1` on `k1`.`WorkOrderId` = `a`.`Id`

                 and `k1`.`Deleted` = 0

                 and `k1`.`PriceTypeCode` = 'Achievements'

                      left join `tb_afcfeedetail` `k2` on `k2`.`WorkOrderId` = `a`.`Id`

                 and `k2`.`Deleted` = 0

                 and `k2`.`PriceTypeCode` = 'NightVisitFee'

                      left join `tb_afcfeedetail` `k3` on `k3`.`WorkOrderId` = `a`.`Id`

                 and `k3`.`Deleted` = 0

                 and `k3`.`PriceTypeCode` = 'OilPrice'

                      left join `tb_afcfeedetail` `k4` on `k4`.`WorkOrderId` = `a`.`Id`

                 and `k4`.`Deleted` = 0

                 and `k4`.`PriceTypeCode` = 'OilSubsidy'

                      left join `tb_afcfeedetail` `k5` on `k5`.`WorkOrderId` = `a`.`Id`

                 and `k5`.`Deleted` = 0

                 and `k5`.`PriceTypeCode` = 'RoadBridgePrice'

                      left join `tb_afcfeedetail` `k6` on `k6`.`WorkOrderId` = `a`.`Id`

                 and `k6`.`Deleted` = 0

                 and `k6`.`PriceTypeCode` = 'InTrafficPrice'

                      left join `tb_afcfeedetail` `k7` on `k7`.`WorkOrderId` = `a`.`Id`

                 and `k7`.`Deleted` = 0

                 and `k7`.`PriceTypeCode` = 'TaxiFare'

                      left join `tb_afcfeedetail` `k8` on `k8`.`WorkOrderId` = `a`.`Id`

                 and `k8`.`Deleted` = 0

                 and `k8`.`PriceTypeCode` = 'Accommodation'

                      left join `tb_afcfeedetail` `k9` on `k9`.`WorkOrderId` = `a`.`Id`

                 and `k9`.`Deleted` = 0

                 and `k9`.`PriceTypeCode` = 'DifferenceFare'

                      left join `tb_afcfeedetail` `k11` on `k11`.`WorkOrderId` = `a`.`Id`

                 and `k11`.`Deleted` = 0

                 and `k11`.`PriceTypeCode` = 'LimitationFee'

                      left join `tb_afcfeedetail` `k12` on `k12`.`WorkOrderId` = `a`.`Id`

                 and `k12`.`Deleted` = 0

                 and `k12`.`PriceTypeCode` = 'ReportingQuality'

                      left join `tb_afcfeedetail` `k13` on `k13`.`WorkOrderId` = `a`.`Id`

                 and `k13`.`Deleted` = 0

                 and `k13`.`PriceTypeCode` = 'RefundPrice'

                      left join `tb_afcfeedetail` `k14` on `k14`.`WorkOrderId` = `a`.`Id`

                 and `k14`.`Deleted` = 0

                 and `k14`.`PriceTypeCode` = 'receiveAmounts'

								 

								 

								        left join `tb_afcfeedetail` `k15` on `k15`.`WorkOrderId` = `a`.`Id`

                 and `k15`.`Deleted` = 0

                 and `k15`.`PriceTypeCode` = 'ReturnCountReward'

								 

								        left join `tb_afcfeedetail` `k16` on `k16`.`WorkOrderId` = `a`.`Id`

                 and `k16`.`Deleted` = 0

                 and `k16`.`PriceTypeCode` = 'ReturnPriceReward'

								 

								 

								 

								 

								 

								 

								 

                      left join tb_afcworkfinancerecord m

                                on m.WorkOrderId = a.Id

                                    and m.Deleted = 0

                      left join tb_worksignininfo n

                                on n.WorkOrderId = a.Id

                                    and n.Deleted = 0

                                    and n.SignType = 2

                      left join tb_workorderstatus o1

                                on o1.WorkOrderId = a.Id

                                    and o1.Deleted = 0

                                    and o1.TypeStatus = 0

                      inner join tb_workorderstatus o

                                 on o.WorkOrderId = a.Id

                                     and o.Deleted = 0

                      left join tb_workbussinessjsoninfo p on a.id = p.workorderid and p.deleted = 0

                      left join tb_afcfeedetail q

                                on a.id = q.WorkOrderId and q.Deleted = 0 and q.PriceTypeCode = 'ExpressFee'

                      left join serviceordercenter.tb_worksignininfo s

                                on a.id = s.WorkOrderId and s.Deleted = 0 and s.SignType = 5

             where `a`.`Deleted` = 0

               AND a.Id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);



    #20231205张珂珂需求【上汽通用汽车金融有限责任公司(清收)】、【上汽通用汽车金融有限责任公司】这俩客户下工单的质检通过时间 取值为工单完成时间

    update rp_afcworkorderdetail a

    set a.PassOrderAuditTime= a.CompleteTime,

        a.FirstOrderAuditTime= a.CompleteTime,

        a.PassOrderAuditPerson='系统确认',

        a.FirstOrderAuditPerson='系统确认'

    where `CustomerName`  in('上汽通用汽车金融有限责任公司(清收)','上汽通用汽车金融有限责任公司')

      and PassOrderAuditTime is null

    and a.WorkOrderId=InWorkOrderId;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('AfcCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_AfcCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;



END

proc_WorkflowJsonById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonById`(InWorkOrderId char(12))
    SQL SECURITY INVOKER
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



DROP TABLE IF EXISTS tm_workjson;

CREATE TEMPORARY TABLE tm_workjson(

  WorkOrderId CHAR(12) PRIMARY KEY,

  Stepjson Json

);





#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

  WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)

    ) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



IF NOT EXISTS(SELECT 1 FROM tm_workjson) THEN

INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



END IF;



IF EXISTS(SELECT 1 FROM tm_workjson)

THEN

DELETE A FROM serviceordercenter.tb_workflowjsoninfo A WHERE A.WorkOrderId=InWorkOrderId;

INSERT INTO serviceordercenter.tb_workflowjsoninfo(WorkOrderId,Stepjson,SourceMode)

SELECT WorkOrderId,Stepjson,2

FROM tm_workjson;

END IF;



DROP TABLE IF EXISTS tm_workjson;



#恢复隔离级别

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



#日志记录生成模块

INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

SELECT 1 AS IsSuccess,

   'WorkFlowJsonService' AS Logger,

   'proc_WorkflowJsonById' AS ProcedureName,

   TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

   sys_ErrCode AS ErrCode,

   sys_ErrMessage AS ErrMessage,

   NOW() AS LogTime;



END

proc_WorkflowJsonCheck

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00')

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里

/*

SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;

*/



#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_HomeUserArea

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeUserArea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeUserArea`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_人员覆盖区域统计(每日)
#CreatedAt: 2023-08-18 10:34:43
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();
	
	#开启事务
	START TRANSACTION;
		
	# 删除7天前的数据
	# DELETE FROM home_userarea WHERE CheckDate '00000'
	THEN
		SET Result=1;
		ROLLBACK;
	ELSE
		SET Result=0;
		COMMIT;
	END IF;  

  	#返回结果
  	SELECT Result AS ErType,sys_ErrMessage AS ErMessage;

  	#日志记录生成模块
  	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)
  	SELECT Result AS IsSuccess,
           'HomeReport' AS Logger,
           'proc_HomeUserArea' AS ProcedureName,
           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,
           sys_ErrCode AS ErrCode,
  	       sys_ErrMessage AS ErrMessage,
           NOW() AS LogTime;
		
END

proc_ChpCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_ChpCompletedWorkOrderById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_ChpCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT 'Chp根据id获取已完成工单明细'
BEGIN

    #Create: 2023年03月29日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_chpworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_chpworkorderdetail` (WorkOrderId, AppCode, OrderType, SubjectNameSummary, CustomerName,

                                         CustStoreName, CustSettleName, LinkMan, LinkTel,

                                         ProName, CityName, AreaName, InstallAddress, Remark, FirstConcatRole,

                                         chpCarUserName, chpCarUserTel, chpCarVinNumber,

                                         IsWithPile, IsSelfBuiltHouse, CarParkin, ProtectionBox, InstallType,

                                         GetElectricityType, Schedule, ElectricityMetersType,

                                         PowerPointLocation, WechatNumber, chpWXAddProgress, FirstContactRemark,

                                         WorkStatusName, CurrentPerson, SubmmitTime, RequiredTime,

                                         chpNextFollowTime, LastAppointStatus, LastFailAppointConcat,

                                         AllFailAppointConcat, SurveyTime, CompleteTime, ClosedAt, AuditRejectRemark,

                                         AuditRejectNum, LastAuditRejectTime,AuditTime, LastSurveyAuditCode, LastSurveyAuditName,

                                         LastInstallAuditCode, LastInstallAuditName, IsAddition, AdditionFeeSettleRoad,

                                         AdditionFeePayTypeName, AdditionFeeChangeRemark, AdditionFeeDetail,

                                         AdditionFeePrice, AdditionFeePaySource, AdditionFeeOfflinePayer,

                                         AdditionFeePayTime, ServiceGoodsName, ServiceGoodsPrice, Power,

                                         FirstPartySettleLength, PackageLength, BrandName, chpBrandInfoURL,

                                         ProjectWarrantyPeriod, SurveyName, Surveycode, InstallName, InstallCode,

                                         Distance, InstallAscription, FirstRecordTime,LastRecordTime, EmployeeAttributes, SurveyMethod,

                                         IndividualReason,

                                         SurveyResult, ResultReason, SurveyRemark, Seller, GoodsName, MaterialPrice,

                                         GoodsSource, MaterialNo, MaterialType, EscrowMaterialType, EscrowMaterialNo,

                                         PileWarrantyPeriod, WarehouseName, chpIsSelfWiring,

                                         HardWire, FlexibleCord, Drivepipe, LeakageInsurance,

                                         AirSwitchBox, ChargingPileColumn, chpInstallRemark, chpNextFollow, CreatedAt,

                                         FirstConcatPersonCode, FirstConcatPersonName, FirstConcatTime,

                                         ChpLineActualUsage,

                                         chpGoodsPackageSubsidyPrice, LastApplyReason, chpCarModel, chpProModel,

                                         chpChargerNo,

                                         chpOriginalInstallPerson, chpFactoryBrand, chpProblemDescription, chpFaulttime,

                                         chpFaultClass, chpSuggestedSolution, chpWarrantyStatus, chpActualSolutionName,

                                         chpIfCharge, chpAfterSaleRemark, chpLogisticsNum, chpShippingWarehouse,

                                         chpWarehouseMaterials,chpMaterialSN,chpWorkerSettlePrice,chpWorkerSettlementMethod,chpWorkerFeeRemark,

                                         chpInstallConditionDate,chpPileInventoryResults,chpColumnInventoryResults,

                                         AdditionFeeCommissionRatio,AllSubsidy,InstallPriPileSubsidy,AfterSalePriPileSubsidy,

                                         ChargingPileSubsidy,LeakageInsuranceSubsidy,GalvanizedPipeSubsidy,

                                         AdditionSubsidy,LineSubsidy,RemoteSubsidy,CarSubsidy,BonusSubsidy,

                                         DifferenceSubsidy,ComplaintDeduction,DifferenceDeduction,chpPilesNum, chpGunsNum,chpParkSpaceNum,

                                         DispatchTime,CustomerAuditApprovalTime,chpOrderSource,CurrentPersonCode)

    SELECT WorkOrderId,

           AppCode,

           OrderType,

           SubjectNameSummary,

           CustomerName,

           CustStoreName,

           CustSettleName,

           LinkMan,

           LinkTel,

           ProName,

           CityName,

           AreaName,

           InstallAddress,

           Remark,

           FirstConcatRole,

           chpCarUserName,

           chpCarUserTel,

           chpCarVinNumber,

           IsWithPile,

           IsSelfBuiltHouse,

           CarParkin,

           ProtectionBox,

           InstallType,

           GetElectricityType,

           Schedule,

           ElectricityMetersType,

           PowerPointLocation,

           WechatNumber,

           chpWXAddProgress,

           FirstContactRemark,

           WorkStatusName,

           CurrentPerson,

           SubmmitTime,

           RequiredTime,

           chpNextFollowTime,

           LastAppointStatus,

           LastFailAppointConcat,

           AllFailAppointConcat,

           SurveyTime,

           CompleteTime,

           ClosedAt,

           AuditRejectRemark,

           AuditRejectNum,

           LastAuditRejectTime,

           AuditTime,

           LastSurveyAuditCode,

           LastSurveyAuditName,

           LastInstallAuditCode,

           LastInstallAuditName,

           IsAddition,

           AdditionFeeSettleRoad,

           AdditionFeePayTypeName,

           AdditionFeeChangeRemark,

           AdditionFeeDetail,

           AdditionFeePrice,

           AdditionFeePaySource,

           AdditionFeeOfflinePayer,

           AdditionFeePayTime,

           ServiceGoodsName,

           ServiceGoodsPrice,

           Power,

           FirstPartySettleLength,

           PackageLength,

           BrandName,

           chpBrandInfoURL,

           ProjectWarrantyPeriod,

           SurveyName,

           Surveycode,

           InstallName,

           InstallCode,

           Distance,

           InstallAscription,

           FirstRecordTime,

           LastRecordTime,

           EmployeeAttributes,

           SurveyMethod,

           IndividualReason,

           SurveyResult,

           ResultReason,

           SurveyRemark,

           Seller,

           GoodsName,

           MaterialPrice,

           GoodsSource,

           MaterialNo,

           MaterialType,

           EscrowMaterialType,

           EscrowMaterialNo,

           PileWarrantyPeriod,

           WarehouseName,

           chpIsSelfWiring,

           HardWire,

           FlexibleCord,

           Drivepipe,

           LeakageInsurance,

           AirSwitchBox,

           ChargingPileColumn,

           chpInstallRemark,

           chpNextFollow,

           CreatedAt,

           FirstConcatPersonCode,

           FirstConcatPersonName,

           FirstConcatTime,

           ChpLineActualUsage,

           chpGoodsPackageSubsidyPrice,

           LastApplyReason,

           chpCarModel,

           chpProModel,

           chpChargerNo,

           chpOriginalInstallPerson,

           chpFactoryBrand,

           chpProblemDescription,

           chpFaulttime,

           chpFaultClass,

           chpSuggestedSolution,

           chpWarrantyStatus,

           chpActualSolutionName,

           chpIfCharge,

           chpAfterSaleRemark,

           chpLogisticsNum,

           chpShippingWarehouse,

           chpWarehouseMaterials,

           chpMaterialSN,

           chpWorkerSettlePrice,

           chpWorkerSettlementMethod,

           chpWorkerFeeRemark,

           chpInstallConditionDate,

           chpPileInventoryResults,

           chpColumnInventoryResults,

           AdditionFeeCommissionRatio,

           AllSubsidy,

           InstallPriPileSubsidy,

           AfterSalePriPileSubsidy,

           #UnderreportingSubsidy,

           ChargingPileSubsidy,

           LeakageInsuranceSubsidy,

           GalvanizedPipeSubsidy,

           AdditionSubsidy,

           LineSubsidy,

           RemoteSubsidy,

           CarSubsidy,

           BonusSubsidy,

           DifferenceSubsidy,

           ComplaintDeduction,

           DifferenceDeduction,#差异扣除

       chpPilesNum, #(充电桩)桩数量

       chpGunsNum, #(充电桩)枪数量

       chpParkSpaceNum, #(充电桩)车位数量

        DispatchTime,

		    CustomerAuditApprovalTime,

				chpOrderSource,

				CurrentPersonCode

    FROM (select  row_number() over (partition by a.id)                                               num,

                 a.id                                                                             AS WorkOrderId,

                 a.AppCode,

                 fn_GetOrderTypeByCode(a.OrderType)                                               as OrderType,

                 b.SubjectNameSummary,

                 a.CustomerName,

                 a.CustStoreName,

                 a.CustSettleName,

                 a.LinkMan,

                 a.LinkTel,

                 a.ProName,

                 a.CityName,

                 a.AreaName,

                 a.InstallAddress,

                 a.Remark,

                 case v_chpFirstContactRole when 1 then '运营' when 2 then '服务人员' end               as FirstConcatRole,

                 c.v_chpCarUserName                                                               as chpCarUserName,

                 c.v_chpCarUserTel                                                                as chpCarUserTel,

                 c.BussinessJson ->> '$.chpCarVinNumber'                                          as chpCarVinNumber,#车架号

                 c.BussinessJson ->> '$.chpFirstContact.IsWithPile'                               as IsWithPile, #带桩上门

                 c.BussinessJson ->> '$.chpSurveyInfo.IsSelfBuiltHouse'                           as IsSelfBuiltHouse, #是否自建房

                 c.BussinessJson ->> '$.chpSurveyInfo.CarParkin'                                  as CarParkin, #车位

                 c.BussinessJson ->> '$.chpSurveyInfo.ProtectionBox'                              as ProtectionBox,#保护箱

                 c.BussinessJson ->> '$.chpSurveyInfo.InstallType'                                as InstallType,#安装方式

                 c.BussinessJson ->> '$.chpSurveyInfo.GetElectricityType'                         as GetElectricityType,#取电方式

                 c.BussinessJson ->> '$.chpSurveyInfo.Schedule'                                   as Schedule,#立表进度

                 c.BussinessJson ->> '$.chpSurveyInfo.ElectricityMetersType'                      as ElectricityMetersType,#电表类型

                 c.BussinessJson ->> '$.chpSurveyInfo.PowerPointLocation'                         as PowerPointLocation,#取电点位置

                 c.BussinessJson ->> '$.chpFirstContact.WechatNumber'                             as WechatNumber,#车主微信号/群名

                 c.BussinessJson ->> '$.chpWXAddProgress'                                         as chpWXAddProgress,#车主微信添加进度 已添加/未通过

                 c.BussinessJson ->> '$.chpFirstContact.Remark'                                   as FirstContactRemark,#首联备注



                 fn_GetStatusNameByCode(a.WorkStatus)                                             as WorkStatusName,

                 (select OperName

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPerson, #当前处理人 取工单待办人,存在多个待办人不展示;

									  (select OperCode

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPersonCode,#当前处理人编号取工单待办人,存在多个待办人不展示;

                 (select max(b1.DoneAt)

                  from workflowruntimeitems a1,

                       workflowruntimesteps b1

                  where a1.id = b1.RuntimeItemId

                    and a1.Deleted = 0

                    and b1.Deleted = 0

                    and b1.Name = '开始'

                    and b1.DoneAt is not null

                    and a.id = a1.TargetEntityId

                  group by a1.TargetEntityId)                                                     as SubmmitTime, #工单提交时间

                 a.RequiredTime                                                                   as RequiredTime,

                 c.v_chpNextFollowTime                                        as chpNextFollowTime,#下次跟进时间

                 (

                     SELECT CASE AppointStatus

                                WHEN 0 THEN ''

                                WHEN 1 THEN '改约'

                                WHEN 2 THEN '等通知'

                                WHEN 3 THEN '请求关闭'

                                WHEN 4 THEN '客服异常反馈记录'

                                WHEN 5 THEN '请求关闭(客户审核)'

                                WHEN 6 THEN '需再次上门'

                                WHEN 7 THEN '智能改约'

                                WHEN 8 THEN '改约'

                                WHEN 9 THEN '等通知'

                                WHEN 10 THEN '请求关闭'

                                WHEN 11 THEN '跟进记录'

                                END

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND AppointSource IN (1, 3) #一线异常反馈记录+智能改约

                       AND `Deleted` = 0

                       AND AppointStatus in (3, 11)

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastAppointStatus, #最新异常反馈类型 等通知/跟进记录,如果没有进行过异常反馈,展示为空,取最后一次的异常反馈结果

                 (

                     SELECT CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                   IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                      CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                   IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                   IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'), ''))

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND `Deleted` = 0

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastFailAppointConcat,#最新异常反馈详情 取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间

                 (

                     SELECT group_concat(CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                                IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                                   CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                                IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                                IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'),

                                                   ''))

                                         order by CreatedAt desc separator '

')

                     FROM `tb_appointment`

                     WHERE `Deleted` = 0

                       #AND AppointSource IN (1,3) #是否要剔除 #呼叫中心+智能改约

                       AND `WorkOrderId` = a.id

                     group by WorkOrderId

                 )                                                                                as AllFailAppointConcat, #异常反馈记录 按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间

                 d.SurveyTime                                                                     as SurveyTime,#勘测完成时间

                 e.CompleteTime                                                                   as CompleteTime,#安装完成时间

                 (select ClosedAt

                  from tb_workorderstatus w1

                  where a.id = w1.WorkOrderId

                    and w1.Deleted = 0)                                                           as ClosedAt,#关闭时间

                 (SELECT group_concat(ifnull(w1.Remark, '') order by w1.InsertTime desc separator ';')

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectRemark, #质检不通过备注 【勘测、安装】每次不通过的备注都放一起。

                 (SELECT count(1)

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectNum, #质检驳回次数 勘测驳回+安装驳回的次数

                 (SELECT DoneAt

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  order by DoneAt desc limit 1)                                                        as LastAuditRejectTime,#最新质检驳回时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('质检工单(安装)','质检工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime desc

                  limit 1)                                                                        as AuditTime, #安装质检通过时间

                (select `w2`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w2`

                where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)

                      )

                order by `w2`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditCode`,  # 最新勘测质检人工号

                (select `w3`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w3`

                where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)

                       )

                order by `w3`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditName`,  # 最新勘测质检人姓名

                (select `w4`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w4`

                where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)

                       )

                order by `w4`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditCode`,  # 最新安装质检人工号

                (select `w5`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w5`

                where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)

                       )

                order by `w5`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditName`,  # 最新安装质检人姓名

                case when g2.id is not null then '是' else '否' end                                as IsAddition, #是否存在增项

                 gg.ExtraJson ->> '$.SettleRoad'                                                  as AdditionFeeSettleRoad,#增项结算路径

                 #g2.ExtraJson ->> '$.SettleType'                                                             as AdditionFeeSettleType, #增项结算方

                 f1.PayTypeName                                                                   as AdditionFeePayTypeName,#结算方式

                 (select r2.Remark

                  from tb_remarkinfo r2

                  where Type = 13

                    and r2.WorkOrderId = a.id

                    and r2.Deleted = 0)                                                           as AdditionFeeChangeRemark,#增项结算修改原因

                 cast(replace(g2.ExtraJson ->> '$.AdditionFeeDetail', 'null', '') as char)        as AdditionFeeDetail,#增项明细

                 g2.Price                                                                         as AdditionFeePrice,#增项费(元)

                 case g2.PaySource

                     when 1 then '扫码支付'

                     when 2 then '线下转账'#'打款凭证'

                     when 3 then '银行转账'

                     end                                                                          as AdditionFeePaySource,#付款方式

                 g2.OfflinePayer                                                                  as AdditionFeeOfflinePayer,#打款人

                 g2.PayTime                                                                       as AdditionFeePayTime,#打款时间

                 gg.SaleName                                                                      as ServiceGoodsName, #安装服务商品

                 gg.GoodsPrice                                                                    as ServiceGoodsPrice,#服务商品价格 订单中心服务商品价格;生成订单时获取该价格 #待定、开发是否拿到

                 gg.ExtraJson ->> '$.Power'                                                       as Power,#功率

                 gg.ExtraJson ->> '$.FirstPartySettleLength'                                      as FirstPartySettleLength,#甲方结算套餐长度

                 gg.ExtraJson ->> '$.PackageLength'                                               as PackageLength,#车企套餐长度

                 gg.BrandName                                                                     as BrandName, #品牌

                 gg.ExtraJson ->> '$.chpBrandInfoURL'                                             as chpBrandInfoURL,#品牌资料

                 gg.ExtraJson ->> '$.ProjectWarrantyPeriod'                                       as ProjectWarrantyPeriod,#工程质保期(年)

                 #g.ExtraJson ->> '$.PackageCableSpecifications'                                              as PackageCableSpecifications, #套餐线缆规格

                 d.SurveyName                                                                     as SurveyName,#勘测人姓名

                 d.Surveycode                                                                     as Surveycode,#勘测人账号

                 e.ServiceName                                                                    as InstallName,# 安装人姓名

                 e.ServiceCode                                                                    as InstallCode,#安装人账号

                 d.Distance                                                                       as Distance, #单程服务距离(km)

                 (select case f1.Ascription #0外勤、1内勤、2优工、3特工-外访、4特工-催收\

                             when 0 then '外勤'

                             when 1 then '内勤'

                             when 2 then '优工'

                             when 3 then '特工-外访'

                             when 4 then '特工-催收'

                             end

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as InstallAscription, # 安装人员属性

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime asc limit 1)                                                     as FirstRecordTime,#首次提交安装结果时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime desc limit 1)                                                     as LastRecordTime,#最新一次提交安装结果时间

                 (select f1.v_EmployeeAttributes

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as EmployeeAttributes, # 安装人员属性	#key没定

                 case d.SurveyMethod

                     when 1 then '单独上门勘测'

                     when 2 then '视频等远程勘测'

                     when 3 then '勘测+安装一起完成'

                     end                                                                          as SurveyMethod,# 勘测方式

                 d.IndividualReason                                                               as IndividualReason,#单独上门原因

                 case d.SurveyResult when 1 then '是' when 0 then '否' end                          as SurveyResult,# 是否继续安装

                 d.ResultReason                                                                   as ResultReason,#不安装原因

                 c.BussinessJson ->> '$.chpSurveyInfo.Remark'                                     as SurveyRemark,#勘测施工备注

                 (case when `g`.`Seller`=0 then '中瑞' when `g`.`Seller`=1 then '非中瑞' when `g`.`Seller`is null and a.ordertype='9856' then '非中瑞' end) as Seller,#充电桩销售方

                 g.GoodsName,#桩商品

                 h.MaterialPrice                                                                  as MaterialPrice,#桩价格

                 case g.GoodsSource

                     when 0 then '分仓货品'

                     when 1

                         then '批发货品' end                                                          as GoodsSource,#桩来源

                 case when g.Seller = 0 then h.MaterialNo end                                     as MaterialNo,#中瑞桩编码

                 g.ExtraJson ->> '$.ChargerType'                                                  as MaterialType,#充电桩类型

                 case when g.Seller = 1 then h.MaterialName end                                   as EscrowMaterialType,#代管桩物料

                 case when g.Seller = 1 then h.MaterialNo end                                     as EscrowMaterialNo,#代管桩编码

                 if(g.ExtraJson ->> '$.PileWarrantyPeriod'='null',null , g.ExtraJson ->> '$.PileWarrantyPeriod' )                   as PileWarrantyPeriod,#电桩质保期(年)

                 h.WarehouseName                                                                     WarehouseName,#充电桩出货仓库

                 case c.BussinessJson ->> '$.chpIsSelfWiring' when 1 then '是' when 0 then '否' end as chpIsSelfWiring,#车主是否自布线



                 fn_GetChpAccessoriesInfo('电缆硬线', a.Id)                                              HardWire,# 电缆硬线 出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注

                 fn_GetChpAccessoriesInfo('电缆软线', a.Id)                                              FlexibleCord,# 电缆软线

                 fn_GetChpAccessoriesInfo('套管', a.Id)                                                Drivepipe,# 套管

                 fn_GetChpAccessoriesInfo('漏保', a.Id)                                                LeakageInsurance,#漏保

                 fn_GetChpAccessoriesInfo('空开盒', a.Id)                                               AirSwitchBox,#空开盒

                 fn_GetChpAccessoriesInfo('充电桩立柱', a.Id)                                             ChargingPileColumn,# #充电桩立柱

                 c.BussinessJson ->> '$.chpInstallRemark'                                         as chpInstallRemark, # 安装施工备注

                 c.BussinessJson ->> '$.chpNextFollow'                                            as chpNextFollow, # 安装后跟进记录

                 a.CreatedAt                                                                      as CreatedAt,#建单时间

                 (SELECT w1.OperCode

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonCode,

                 (SELECT w1.OperName

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonName,

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatTime,

        c.v_ChpLineActualUsage as ChpLineActualUsage, #线缆实际用量(电缆硬线+电缆软线实际用量)

        c.BussinessJson ->> '$.chpGoodsPackageSubsidyPrice'  as chpGoodsPackageSubsidyPrice,

        ac.ApplyReason      AS `LastApplyReason`,

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpCarModel'))              AS `chpCarModel`,#车型

#施工完成时间(提交结果中录入的时间:serviceinfo表completetime)

#质检通过时间(对标安装质检通过时间)

#服务商品(跟安装服务商品应该是要存一起的,沿用原逻辑存)//已有

#施工人员姓名	施工人员账号	施工人员归属	(从工作流拿待提交处理结果人/tb_workserviceinfo表的服务人员)//已有

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpProModel'))              AS `chpProModel`,#产品型号

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpChargerNo'))             AS `chpChargerNo`,#桩编号

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpOriginalInstallPerson'))      AS `chpOriginalInstallPerson`,#原施工人

                 `c`.`BussinessJson` ->> '$.chpFactoryBrand'                                   as chpFactoryBrand,#主机厂品牌

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpProblemDescription'))         AS `chpProblemDescription`,#问题描述

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpFaulttime'))             AS `chpFaulttime`,#故障时间

                 `c`.`BussinessJson` ->> '$.chpFaultClass'                                     as chpFaultClass,#故障分类

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpSuggestedSolution'))          AS `chpSuggestedSolution`,#建议解决方案

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpWarrantyStatus'))        AS `chpWarrantyStatus`,#保修状态

                 concat(

                         (select name

                          from basic_datadictionary bd

                          where bd.code = `c`.`BussinessJson` ->> '$.chpActualSolutionCode'

                            and bd.Deleted = 0),

                         ',',

                         if(`c`.`BussinessJson` ->> '$.chpActualSolutionCode'='other',

                             ifnull(`c`.`BussinessJson` ->> '$.chpActualSolutionDetail', ''),''))      AS `chpActualSolutionName`,#实际处理方案(实际处理方案为其它时展示详细处理信息)

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpIfCharge'))              AS `chpIfCharge`,

                 `c`.`BussinessJson` ->> '$.chpAfterSaleRemark'                                as chpAfterSaleRemark,#施工备注(在JSON表)

                 `c`.`BussinessJson` ->> '$.chpLogisticsNum'                                   as chpLogisticsNum,#物流单号

                 `g`.`ExtraJson` ->> '$.chpShippingWarehouse'                                  as chpShippingWarehouse,#出货仓库

                 (select group_concat(

                                 concat(tw.MaterialName, ',', ifnull(tw.MaterialNo, '无编码'), ',', ifnull(tw.Amount, 0),

                                        ';') SEPARATOR '

')

                  from tb_workgoodsdetail tw

                  where g.Id = tw.WorkGoodsId

                    and tw.Deleted = 0

                  group by tw.WorkOrderId)                                                     as chpWarehouseMaterials,# 所用物料	(拼接)

                  `c`.`BussinessJson` ->> '$.chpMaterialSN'  as chpMaterialSN,#故障物料SN

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlePrice'  as chpWorkerSettlePrice, #优工结算价(总价)

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlementMethod' chpWorkerSettlementMethod, #优工结算方式

                  `c`.`BussinessJson` ->> '$.chpWorkerFeeRemark' chpWorkerFeeRemark, #优工费用备注

    if(c.BussinessJson->>'$.chpInstallConditionDate'='null',null,c.BussinessJson->>'$.chpInstallConditionDate')  chpInstallConditionDate ,#具备安装条件日期,

       c.BussinessJson->>'$.chpPileInventoryResults'    as chpPileInventoryResults, #桩盘点结果

       c.BussinessJson->>'$.chpColumnInventoryResults'    as chpColumnInventoryResults, #立柱盘点结果

      #增项费分佣比例(%)

           c.BussinessJson->>'$.AdditionFeeCommissionRatio' as AdditionFeeCommissionRatio,##增项费分佣比例(%)

           (select sum(ifnull(FeeValue,0)) from tb_feeapplicationinfo f1

            where a.Id = f1.TargetId and f1.Deleted = 0 and f1.AuditStatus = 2 and f1.OrgCode = '1067'

              and f1.FeeItemId in (select id

                                   from tb_feeiteminfo f2

                                   where f2.FeeItemName in

                                         ('漏保补贴','私桩计件-安装','私桩计件-售后','公桩计件(申请)','镀锌管补贴','增项',

                                         '电缆补贴','远补','用车补贴','奖金','差异补发','客诉扣款','差异扣除')

                                     and f2.Deleted = 0 and f2.OrgCode = '1067' and f2.Enable=1)) as AllSubsidy, #总费用

           fn_GetItemFeeById(a.id,'私桩计件-安装','1067') as InstallPriPileSubsidy, #私桩计件

           fn_GetItemFeeById(a.id,'私桩计件-售后','1067') as AfterSalePriPileSubsidy, #私桩计件

           #fn_GetItemFeeById(a.id,'漏报补贴','1067') as UnderreportingSubsidy, #漏报补贴

           fn_GetItemFeeById(a.id,'公桩计件(申请)','1067') as ChargingPileSubsidy, #公桩计件(申请)

           fn_GetItemFeeById(a.id,'漏保补贴','1067') as LeakageInsuranceSubsidy, #漏保补贴

           fn_GetItemFeeById(a.id,'镀锌管补贴','1067') as GalvanizedPipeSubsidy, #镀锌管补贴

           fn_GetItemFeeById(a.id,'增项','1067') as AdditionSubsidy , #增项

           fn_GetItemFeeById(a.id,'电缆补贴','1067') as LineSubsidy , #电缆补贴

           fn_GetItemFeeById(a.id,'远补','1067') as RemoteSubsidy , #远补

           fn_GetItemFeeById(a.id,'用车补贴','1067') as CarSubsidy , #用车补贴

           fn_GetItemFeeById(a.id,'奖金','1067') as BonusSubsidy , #奖金

           fn_GetItemFeeById(a.id,'差异补发','1067') as DifferenceSubsidy, #差异补发

           fn_GetItemFeeById(a.id,'客诉扣款','1067') as ComplaintDeduction,#客诉扣款

           fn_GetItemFeeById(a.id,'差异扣除','1067') as DifferenceDeduction,#差异扣除

       if(c.BussinessJson->>'$.chpPilesNum'='',null,c.BussinessJson->>'$.chpPilesNum')  as chpPilesNum, #(充电桩)桩数量

       if(c.BussinessJson->>'$.chpGunsNum'='',null,c.BussinessJson->>'$.chpGunsNum') as chpGunsNum, #(充电桩)枪数量

       if(c.BussinessJson->>'$.chpParkSpaceNum'='',null,c.BussinessJson->>'$.chpParkSpaceNum')as chpParkSpaceNum, #(充电桩)车位数量

                  /* (select f1.CustomizeJson->>'$.BelongPro'

        from (`serviceordercenter`.`tb_userinfo` `e1`

                 left join `serviceordercenter`.`tb_userdetail` `f1` on ((`e1`.`Id` = `f1`.`Id`)))

        where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and

               (`e1`.`TeamCode` = '10670001'))

        limit 1)                                                                                        AS `BelongPro` #人员归属省份*/

    (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('调度工单(勘测)','调度工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1) as  DispatchTime,  #`勘测调度完成时间/调度完成时间

					`c`.`BussinessJson` ->> '$.CustomerAuditApprovalTime' as CustomerAuditApprovalTime,#客户审核通过时间

          `c`.`BussinessJson` ->> '$.chpOrderSource' as chpOrderSource #订单来源

          from tb_workorderinfo a

                   left join tb_worksubjectsummary b on a.id = b.WorkOrderId and b.Deleted = 0

                   left join tb_workbussinessjsoninfo c on a.id = c.WorkOrderId and c.Deleted = 0

                   left join tb_chpworkorderinfo d on a.id = d.id and d.Deleted = 0

                   left join tb_workserviceinfo e on a.id = e.WorkOrderId and e.Deleted = 0

                   left join tb_workfeeinfo f1 on a.id = f1.WorkOrderId and f1.Deleted = 0

              #left join tb_workfeeitem g1 on f1.id = g1.FeeInfoId and g1.FeePurpose = '勘测费用' and g1.Deleted = 0

                   left join tb_workfeeitem g2 on f1.id = g2.FeeInfoId and g2.FeePurpose = '增项费用' and g2.Deleted = 0

                   left join tb_workgoodsinfo g on a.id = g.WorkOrderId and g.Deleted = 0 and g.GoodsType = 0

                   left join tb_workgoodsinfo gg on a.id = gg.WorkOrderId and gg.Deleted = 0 and gg.GoodsType = 29

                   left join tb_workgoodsdetail h

                             on g.id = h.WorkGoodsId and h.Deleted = 0 and a.OrderType = '9856' #and h.MaterialTypeCode like '0101%'

                   left join tb_appointmentconcat ac on ac.WorkOrderId = a.Id and ac.Deleted = 0

          where a.Deleted = 0

            and a.ServiceProviderCode = '1067'

            and a.id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('ChpCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_ChpCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;

    select sys_ErrCode, sys_ErrMessage;

END

proc_generateInstitutional

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_generateInstitutional \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_generateInstitutional`(in num int)
begin

	declare whilenum int default 5000;

	while whilenum < num do

		set @name= concat('系统生成',whilenum);

		SELECT @SortOrder:=IFNULL(MAX(SortOrder) + 1,1) FROM basic_institutionalinfo WHERE Deleted=0 AND ParentId='IJ9999999878';

		SELECT @Code:=concat( TeamCode,LPAD(IFNULL(MAX(CAST(RIGHT(Code, 4) AS SIGNED)) + 1,1),4,'0')) 

			FROM basic_institutionalinfo WHERE Deleted=0 AND TeamCode ='ZR01ZR001';

		#Level=3,OrgCode = 1001,TeamCode=ZR01ZR001,Code= ZR01ZR001+  ,SortOrder = max+1,name

		INSERT INTO basic_institutionalinfo(Id,ParentId,Code,Name,Level,SortOrder,OrgCode,TeamCode,InsertTime) 

					VALUES(fn_nextval('IJ'),'IJ9999999878',@Code,@name,3,@SortOrder,'1001','ZR01ZR001',NOW());

	  set whilenum = whilenum +1;



	end while;

	set num = whilenum;

end

proc_DeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DeleteOrderInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_DeleteOrderInfo`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DeleteOrderInfo`(

		InOrderId char(12),

		InDeletedById char(36),

		InDeletedAt datetime

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年4月19日

#Comment: 工单删除

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





#删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkorderID=InOrderId

  AND Deleted=0;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_DeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_HomeOrderdetail

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeOrderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeOrderdetail`(IN InDate date, IN EndDate date)
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_工单数据明细(每日)
#CreatedAt: 2023-08-29 13:29:44
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();

	#开启事务
	START TRANSACTION;

	# 删除今日单据
	# DELETE FROM home_orderdetaildaily WHERE CheckDate = CURRENT_DATE();

	# 写入表
    # 1.下单时间为昨日 tb_workorderinfo.CreatedAt 建单时间
    INSERT INTO home_orderdetaildaily(DetailType,WorkOrderId,WorkStatus,ProviderCode,OrderType,CustomerId,CustomerName,
    ProCode,ProName,CityCode,CityName,AreaCode,AreaName,ServiceId,ServiceCode,ServiceName,DetailTime,CheckDate)
    SELECT 1,a.Id,a.WorkStatus,IFNULL(a.ServiceProviderCode,'1001') AS ServiceProviderCode,a.OrderType,a.CustomerId,
           a.CustomerName,a.ProCode,a.ProName,a.CityCode,a.CityName,a.AreaCode,a.AreaName,
           b.ServiceId,b.ServiceCode,b.ServiceName,a.CreatedAt,CURRENT_DATE()
    FROM tb_workorderinfo a,
         tb_workserviceinfo b
    WHERE a.Id=b.WorkOrderId
      AND a.CreatedAt>=InDate
      AND a.CreatedAt=InDate
      AND d.StartedAt=InDate
      AND d.StartedAt=InDate
      AND a.EffectiveSuccessfulTime=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.ClosedAt
                

proc_RecoveryBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_RecoveryBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_RecoveryBySingle`(

InWorkOrderId varchar(12) 

)
    SQL SECURITY INVOKER
BEGIN





  DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE IsSuc TINYINT(1);	

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

	SET sys_StartTime = NOW();

	SET IsSuc=0;

 



	#开启事务

	START TRANSACTION;

	

	

	

#1.0 恢复主库vhs表

 update serviceordercenter.tb_vhsworkorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null 	where Id=InWorkOrderId and Deleted = 2; 

#2.0 恢复主库workorder表

 update serviceordercenter.tb_workorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where Id=InWorkOrderId and Deleted = 2;

#3.0 恢复 tb_workorderstatus

update serviceordercenter.tb_workorderstatus 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.0 tb_workcarinfo 车辆信息

update serviceordercenter.tb_workcarinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.0 tb_workserviceinfo 工单备案信息 

update serviceordercenter.tb_workserviceinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.0 tb_workservicesubject

update serviceordercenter.tb_workservicesubject 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#7.0 tb_workaddressinfo

update serviceordercenter.tb_workaddressinfo 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2; 

#8.tb_workservicesubject 服务科目

update serviceordercenter.tb_workservicesubject 	set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#9.tb_worksubjectsummary 服务科目

update serviceordercenter.tb_worksubjectsummary 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#10.tb_appointment 预约

update serviceordercenter.tb_appointment 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#11.tb_appointmentconcat 预约拼接

update serviceordercenter.tb_appointmentconcat 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#12.tb_workbussinessjsoninfo  工单业务信息冗余JSON

update serviceordercenter.tb_workbussinessjsoninfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#13.tb_worktaginfo 工单标记信息

update serviceordercenter.tb_worktaginfo  set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#14.tb_workresourceinfo 附件信息

update serviceordercenter.tb_workresourceinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#15  basic_resourceitem 

UPDATE serviceordercenter.tb_workresourceinfo a 

 JOIN serviceordercenter.basic_resourceitem  c on a.resourceId=c.Id  

SET c.Deleted =0,c.DeletedAt = null, c.DeletedById = null

WHERE a. `WorkOrderId` =InWorkOrderId

and c.Deleted = 2;

#16 tb_workfeeinfo 

update serviceordercenter.tb_workfeeinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#17 tb_workfeedetail

update serviceordercenter.tb_workfeedetail  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#18 tb_workfeeitem

update serviceordercenter.tb_workfeeitem  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

# 19 tb_vhsworkfilereceiveinfo

update serviceordercenter.tb_vhsworkfilereceiveinfo  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#20 tb_vhsworkrecordinfo

update serviceordercenter.tb_vhsworkrecordinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#21 tb_vhsworkorderrecorddetail  用Id

update serviceordercenter.tb_vhsworkorderrecorddetail  set Deleted=0 ,DeletedAt=null,DeletedById=null where Id=InWorkOrderId and Deleted = 2;

#22 tb_vhsworkauditinfo

update serviceordercenter.tb_vhsworkauditinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#25 tb_operatedinfo 

update serviceordercenter.tb_operatedinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#26  tb_operatinginfo

update serviceordercenter.tb_operatinginfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#27 tb_recordinfo

update serviceordercenter.tb_recordinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#28 tb_remarkinfo

update serviceordercenter.tb_remarkinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#30 tb_auditinfo

update serviceordercenter.tb_auditinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#31 tb_mortgageechangerecord

update serviceordercenter.tb_mortgageechangerecord set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#32 tb_workorderchangelog

update serviceordercenter.tb_workorderchangelog set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#36 tb_worksignininfo

update serviceordercenter.tb_worksignininfo  set Deleted=0   ,DeletedAt=null,DeletedById=null  where WorkOrderId=InWorkOrderId and Deleted = 2;

#37 rp_vhsworkorderdetail 

update serviceordercenter.rp_vhsworkorderdetail set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#38 rp_vhsworkorderinfodetail

update serviceordercenter.rp_vhsworkorderinfodetail set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

 

 

#his库逻辑删除

update serviceordercenterhis.tb_vhsworkorderinfo  set deleted=1,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId;

update serviceordercenterhis.tb_workorderinfo set deleted=1 ,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId; 

	

	

	

	

	

	

	

	

	



######################################################################################################################################  工作流begin



#1.tb_workflowinfo  工作流信息 

update serviceordercenter.tb_workflowinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#2.tb_workoperateinfo

update serviceordercenter.tb_workflowjsoninfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#3.tb_workoperateinfo

update serviceordercenter.tb_workoperateinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.tb_workoperationinfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.tb_workorderjsoninfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.workflowitems workflownodes workflowhandlingstatus 全量



 

#7.workflowruntimeitems 

UPDATE serviceordercenter.workflowruntimeitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and b.DeletedById = '12345678-0000-0000-0000-000000000000';



#8.workflowruntimeactivities

UPDATE  serviceordercenter.workflowruntimeactivities t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#9.workflowruntimestatus 

UPDATE  serviceordercenter.workflowruntimestatus t

join serviceordercenter.tb_vhsworkorderinfo b on t.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





#10.workflowruntimesteps

UPDATE  serviceordercenter.workflowruntimesteps t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#11.workflowruntimeactors

UPDATE  serviceordercenter.workflowruntimeactors t1

 join serviceordercenter.workflowruntimesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id



SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';



#12.workflowruntimerelatedactors 





#13. workflowcompleteitems 

UPDATE serviceordercenter.workflowcompleteitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and  b.DeletedById = '12345678-0000-0000-0000-000000000000';



#14.workflowcompletesteps  

UPDATE  serviceordercenter.workflowcompletesteps t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#15.workflowcompleteactors

UPDATE  serviceordercenter.workflowcompleteactors t1

 join serviceordercenter.workflowcompletesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';





#16.workflowcompleteactivities

UPDATE  serviceordercenter.workflowcompleteactivities t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





##################################################################################################  工作流end .













#################################################################################################    删除his库工作流相关表数据 begin 



 

#1.tb_workflowinfo  工作流信息 

update serviceordercenterhis.tb_workflowinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#2.tb_workoperateinfo

update serviceordercenterhis.tb_workflowjsoninfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#3.tb_workoperateinfo

update serviceordercenterhis.tb_workoperateinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#4.tb_workoperationinfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#5.tb_workorderjsoninfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#6.workflowitems workflownodes workflowhandlingstatus 全量



#7.workflowruntimeitems 

UPDATE serviceordercenterhis.workflowruntimeitems b

JOIN serviceordercenterhis.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 1  ,

    b.DeletedAt = now() ,

    b.DeletedById = '12345678-0000-0000-0000-000000000000'

WHERE a.Id=InWorkOrderId;









#################################################################################################    删除his库工作流相关表数据 end  









	

	

	

	 

		

	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET IsSuc=0;

		ROLLBACK;

	ELSE

		SET IsSuc=1;

		COMMIT;

	END IF;  

	

	

	



INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT IsSuc AS IsSuccess,

           'RecoveryBySingle' AS Logger,

           'proc_RecoveryBySingle'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',InWorkOrderId,CONCAT('入参:',InWorkOrderId,',错误信息:' ,sys_ErrMessage)) AS ErrMessage,

           NOW() AS LogTime;

					 

					 

					 

					 





END

proc_AfcWorkOrderUnFollowDays

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcWorkOrderUnFollowDays \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcWorkOrderUnFollowDays`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcWorkOrderUnFollowDays`()
    COMMENT '壹好车服-更新金融未到退案时间的工单未跟进天数(每天)'
BEGIN

    #Author:Wangxh

    #Create: 2022年02月15日

    #Update:2024-04-16



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #开启事务

    START TRANSACTION;

    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is not null;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is null

      and exists(SELECT 1 FROM tb_workflowinfo c WHERE c.StepName = '派单' AND a.WorkOrderId = c.WorkOrderId AND c.Deleted = 0 and c.DoneAt is not null);



    update tb_afcworkfinanceinfo a,

           tb_workbussinessjsoninfo b

    set b.BussinessJson = json_set(BussinessJson, '$.UnFollowDays', 0)

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      #and ifnull(b.v_lastnegotiatortime) is not null

      #and b.v_FollowFrequency = 1

      and b.v_UnFollowDays = -1;

/*

     update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = json_remove(BussinessJson, '$.UnFollowDays')

    where a.deleted = 0

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_FollowFrequency = 0;



 */



    #修改AFC明细报表

    UPDATE rp_afcworkorderdetail A,tb_workbussinessjsoninfo B,tb_afcworkfinanceinfo C

        SET A.UnFollowDays = B.v_UnFollowDays

    WHERE A.Deleted = 0

    AND A.WorkOrderId = B.WorkOrderId

    AND B.Deleted = 0

    AND A.WorkOrderId = C.WorkOrderId

    AND C.Deleted = 0

    AND C.RetreatTime >= now();



    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        ROLLBACK;

    ELSE

        SET Result = 0;

        COMMIT;

    END IF;

    #返回结果

    #SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger,

                                 ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                       AS IsSuccess,

           'AfcWorkOrderUnFollowDays'                   AS Logger,

           'proc_AfcWorkOrderUnFollowDays'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())  AS TimeSpan,

           sys_ErrCode                                  AS ErrCode,

           IF(Result = 1, CONCAT(sys_ErrMessage), null) AS ErrMessage,

           NOW()                                        AS LogTime;



END

proc_CreateWorkFlow

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateWorkFlow \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateWorkFlow`(InOrgCode varchar(50), InOrderType varchar(10),

                                                            InOrderTypeName varchar(50))
    DETERMINISTIC
BEGIN

    #Author: wangxh

    #Create: 2022-10-31 11:48:24

    #Comment: 创建商户-工作流初始化

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgName varchar(50);

    DECLARE InVersionOfId varchar(36);

    DECLARE InItemId varchar(20);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

        GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

            sys_ErrMessage= MESSAGE_TEXT;

    END;

    SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



    START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    select ShortName

    into InOrgName

    from basic_serviceprovider

    where ProviderCode = InOrgCode

      and Deleted = 0;



    select uuid() into InVersionOfId;

    select IFNULL(InOrderType, '001') into InItemId;



    if (select 1

        from basic_apollo

        where NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0) is true then

        set Result = 1;

        rollback;

        set sys_ErrCode = '10000';

        set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

    else

        INSERT INTO `basic_apollo` (NameSpace, `Key`, `Value`, `Remark`)

        VALUES ('WrokflowCodes', InOrderType, '{

          "Value": "Install001"

        }', concat(InOrgName, InOrgCode, InItemId));

        update serviceordercenter.basic_apollo

        set Value= json_set(Value, '$.Value', CONCAT('Common-', InOrgCode, '-', InItemId))

        where Value ->> '$.Value' = 'Install001'

          and NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0;

        if (select 1

            from basic_apollo

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and InOrderType member of (value ->> '$.Value[*].OrderType')

              and Deleted = 0) is true then

            set Result = 1;

            rollback;

            set sys_ErrCode = '10000';

            set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

        else

            update serviceordercenter.basic_apollo a

            set Value = JSON_ARRAY_INSERT(Value, '$.Value[0]', json_object('OrderType', InOrderType,

                                                                           'AppointStatus',

                                                                           JSON_ARRAY(

                                                                                   json_object('Tag', 1, 'Name', '改约',

                                                                                               'Code',

                                                                                               concat('ChangeReason', InOrderType)),

                                                                                   json_object('Tag', 2, 'Name', '等通知',

                                                                                               'Code',

                                                                                               concat('WaitNotice', InOrderType)),

                                                                                   json_object('Tag', 3, 'Name', '请求关闭',

                                                                                               'Code',

                                                                                               concat('CloseReason', InOrderType))

                                                                               )))

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and Deleted = 0;

            if (select 1

                from basic_datadictionary

                where code in (concat('ChangeReason', InOrderType), concat('WaitNotice', InOrderType),

                               concat('CloseReason', InOrderType),

                               concat('ChangeReason', InOrderType, '001'), concat('WaitNotice', InOrderType, '001'),

                               concat('CloseReason', InOrderType, '001'))

                  and Deleted = 0) is true then

                set Result = 1;

                rollback;

                set sys_ErrCode = '10000';

                set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有字典表配置,请联系管理员核查;');

            else

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                values (fn_nextval('DD'), concat('ChangeReason', InOrderType), concat(InOrderTypeName, '-申请原因-改约'),

                        null, InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('WaitNotice', InOrderType), concat(InOrderTypeName, '-申请原因-等通知'), null,

                        InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('CloseReason', InOrderType), concat(InOrderTypeName, '-申请原因-请求关闭'),

                        null, InOrgCode, 1, now(), 0);

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('ChangeReason', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('WaitNotice', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('CloseReason', InOrderType)

                  and deleted = 0;

                if (select 1

                    from workflowitems

                    where Code = CONCAT('Common-', InOrgCode, '-', InItemId)

                      and Deleted = 0

                      and VersionState = 'PUBLISHED') is true then

                    set Result = 1;

                    rollback;

                    set sys_ErrCode = '10000';

                    set sys_ErrMessage =

                            concat(ifnull(sys_ErrMessage, ''), ' 有已发布的 ', concat(InOrgName, InItemId, '流程-支持出发到达签到'),

                                   ' 工作流,请联系管理员核查;');

                else

                    INSERT INTO `workflowitems` (`Id`, `Code`, `Name`, `TargetTableName`, `Description`, `VersionOfId`,

                                                 `VersionIndex`, `VersionState`, `PublishedById`, `PublishedAt`,

                                                 `ExpiredAt`,

                                                 `OverTime`, `TimeOut`, `RemindNum`, `IntervalHour`, `CreatedById`,

                                                 `CreatedAt`,

                                                 `UpdatedById`, `UpdatedAt`, `Deleted`, `DeletedById`, `DeletedAt`,

                                                 `DatabaseKey`)

                    VALUES (uuid(), CONCAT('Common-', InOrgCode, '-', InItemId), concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), InVersionOfId, 2, 'DRAFT',

                            null,

                            null,

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default'),

                           (InVersionOfId, CONCAT('Common-', InOrgCode, '-', InItemId),

                            concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), null, 1, 'PUBLISHED', null,

                            now(6),

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default');



                    INSERT INTO `workflownodes` (`Id`, `WorkflowItemId`, `NodeType`, `Code`, `Name`, `SortOrder`,

                                                 `AllowCancel`,

                                                 `AllowStepCancel`, `IsNotify`, `HandlingConditionType`,

                                                 `AcceptedByPercentageN`,

                                                 `HandlingConditionExpression`, `Shape_X`, `Shape_Y`,

                                                 `CreatedById`, `CreatedAt`, `UpdatedById`, `UpdatedAt`, `Deleted`,

                                                 `DeletedById`,

                                                 `DeletedAt`)

                    select UUID()                                    as `Id`,

                           d.id                                      as `WorkflowItemId`,

                           a.`NodeType`,

                           replace(replace(a.code, '1004005', concat(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId)) as `Code`,

                           a.`Name`,

                           a.`SortOrder`,

                           a.`AllowCancel`,

                           a.`AllowStepCancel`,

                           a.`IsNotify`,

                           a.`HandlingConditionType`,

                           a.`AcceptedByPercentageN`,

                           a.`HandlingConditionExpression`,

                           a.`Shape_X`,

                           a.`Shape_Y`,

                           d.`CreatedById`,

                           now(6)                                       `CreatedAt`,

                           d.`UpdatedById`,

                           now(6)                                       `UpdatedAt`,

                           0                                            `Deleted`,

                           null                                         `DeletedById`,

                           null                                         `DeletedAt`

                    from workflownodes a

                             join workflowitems c

                                  on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                    where a.Deleted = 0

                    order by a.WorkflowItemId, a.SortOrder;

/*

INSERT INTO `workflownodes` (`Id`,`WorkflowItemId`,`NodeType`,`Code`,`Name`,`SortOrder`,`AllowCancel`,`AllowStepCancel`,`IsNotify`,`HandlingConditionType`,`AcceptedByPercentageN`,`HandlingConditionExpression`,`Shape_X`,`Shape_Y`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`Deleted`,`DeletedById`,`DeletedAt`,`AllowAutomaticAudit`)

VALUES

 (UUID(),DRAFTFlowId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0);

*/

                    insert into workflownodeactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                                   customexpression,

                                                   createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid,

                                                   deletedat)

                    select UUID()                                       AS id,

                           E.ID                                         AS workflownodeid,

                           A.actortype,

                           case A.ActorType when 'ROLE' then

                               (select UserCenterRoleId from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetid  end as targetid,

                           case A.ActorType when 'ROLE' then

                               (select RoleName from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetname  end as targetname,

                           A.customtitle,

                           replace(A.customexpression, 'Code1004005005',

                                   CONCAT('Code', InOrgCode,InItemId, '005')) as customexpression,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                               deleted,

                           null                                            deletedbyid,

                           null                                            deletedat

                    from workflownodeactors a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # workflownodecommentactors 没数据

/*

insert into workflownodecommentactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                      customexpression, createdbyid, createdat, updatedbyid, updatedat,

                                      deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.targetid, A.targetname, A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code','1041','001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownodecommentactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-','1041','-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodeactions;

                    insert into workflownodeactions(id, workflownodeid, subject, actiontype, workflowhandlingstatustype,

                                                    sortorder, scripts, createdbyid, createdat, updatedbyid, updatedat,

                                                    deleted,

                                                    deletedbyid, deletedat)

                    select UUID()                                    AS id,

                           E.ID                                      AS workflownodeid,

                           A.subject,

                           A.actiontype,

                           A.workflowhandlingstatustype,

                           A.sortorder,

                           replace(replace(A.scripts, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   CONCAT(InOrgCode, '-', InItemId)) as scripts,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                            deleted,

                           null                                         deletedbyid,

                           null                                         deletedat

                    from workflownodeactions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



#select * from workflowhandlingstatus;

                    insert into workflowhandlingstatus(id, workflownodeid, code, name, handlingstatustype, sortorder,

                                                       createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                       deletedbyid,

                                                       deletedat)

                    select UUID()                                                  AS id,

                           E.ID                                                    AS workflownodeid,

                           replace(a.code, '1004005', CONCAT(InOrgCode, InItemId)) As code,

                           A.name,

                           A.handlingstatustype,

                           A.sortorder,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                                          deleted,

                           null                                                       deletedbyid,

                           null                                                       deletedat

                    from workflowhandlingstatus a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    #select * from workflownoderelatedactors; 无关联

/*

insert into workflownoderelatedactors(id, workflownodeid, actortype, handlingstatustype, targetid, targetname, customtitle, customexpression,

                                      createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.handlingstatustype, A.targetid,A.targetname,

        A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code',InOrgCode,'001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownoderelatedactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodestepconditions;

                    insert into workflownodestepconditions(id, workflownodeid, workflowitemid, subject, handlingstatus,

                                                           sortorder,

                                                           scripts,

                                                           nextworkflownodeid, shape_x, shape_y,

                                                           createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                           deletedbyid,

                                                           deletedat)

                    select UUID() AS id,

                           E.ID   AS workflownodeid,

                           D.ID   AS workflowitemid,

                           A.subject,

                           A.handlingstatus,

                           A.sortorder,

                           A.scripts,

                           E1.ID  AS nextworkflownodeid,

                           A.shape_x,

                           A.shape_y,

                           E.createdbyid,

                           E.createdat,

                           E.updatedbyid,

                           E.updatedat,

                           0         deleted,

                           NULL      deletedbyid,

                           NULL      deletedat

                    from workflownodestepconditions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                                      and c.Code ='Common-1004-005' and a.WorkflowItemId = c.id

                             left join workflowitems d

                                       on c.VersionState = d.VersionState and

                                          d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d.Deleted = 0

                             left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                             left join workflownodes b1 on a.NextWorkflowNodeId = b1.Id and b1.Deleted = 0

                             left join workflowitems c1

                                       on b1.WorkflowItemId = c1.Id and c1.Deleted = 0 and

                                          c1.VersionState in ('PUBLISHED', 'DRAFT')

                                           and c1.Code ='Common-1004-005' and a.WorkflowItemId = c1.id

                             left join workflowitems d1

                                       on c1.VersionState = d1.VersionState and

                                          d1.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d1.Deleted = 0

                             left join workflownodes e1

                                       on b1.name = e1.Name and d1.id = e1.WorkflowItemId and e1.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # select * from workflowprocessstates;

#select * from workflowrelatedactors;#空表

/*

INSERT INTO `workflowrelatedactors` (id, workflowitemid, actortype, targetid, targetname, customtitle, customexpression,

                                     createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() as `Id`,d.id as `WorkflowItemId`,a.`actortype`, a.targetid, a.targetname, a.customtitle, a.customexpression,

       d.`CreatedById`,now(6) `CreatedAt`,d.`UpdatedById`,now(6) `UpdatedAt`,

       0 `Deleted`,null `DeletedById`,null `DeletedAt`

 from workflowrelatedactors a

join workflowitems c on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and c.VersionState in('PUBLISHED','DRAFT')

 join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

where a.Deleted = 0

order by a.WorkflowItemId;

*/

                    insert into basic_workstepinfo(workflowcode, nodecode, nodename, nodestatus, workflowstepname,

                                                   workflowsteptype, inserttime, deleted)

                    select CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                           replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId))   as nodecode,

                           a.nodename,

                           a.nodestatus,

                           a.workflowstepname,

                           a.workflowsteptype,

                           now()                                          inserttime,

                           0                                              deleted

                    from basic_workstepinfo a

                             join workflownodes b on a.NodeCode = b.Code and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in ('PUBLISHED') and

                                     c.Code ='Common-1004-005'

                                      and a.WorkFlowCode = c.Code

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;

                    if (select 1

                        from basic_workflowstatus

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0) is true then

                        update basic_workflowstatus

                        set Deleted = 1

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0;

                    else

                        insert into basic_workflowstatus(workstatus, workstatuscode, workstatusname, workflowcode,

                                                         workflowname, nodecode, nodename, nodecategory, orgcode,

                                                         ifsupportclosed,

                                                         inserttime, deleted)

                        select workstatus,

                               null                                           workstatuscode,

                               workstatusname,

                               CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                               concat(InOrgName, InOrgCode, InItemId)      as workflowname,

                               replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                       concat(InOrgCode, '-', InItemId))   as nodecode,

                               a.nodename,

                               replace(a.nodecategory, '1004', InOrgCode)  as nodecategory,

                               InOrgCode                                   as orgcode,

                               a.ifsupportclosed,

                               now()                                          inserttime,

                               0                                              deleted

                        from basic_workflowstatus a

                        where a.WorkFlowCode ='Common-1004-005'

                          and a.Deleted = 0;



                        insert into basic_workflownoderelation(id, operationid, operationcode, operationname,

                                                               workflowstatusid, nodecode, nodename, sortorder, inserttime)

                        select

                        fn_nextval('FA') as id,

                               a.OperationId,

                               a.OperationCode,

                               a.OperationName,

                               b1.id as workflowstatusid,

                               b1.NodeCode,

                               b1.NodeName,

                               a.SortOrder,

                               now()

                               from basic_workflownoderelation a

                        join basic_workflowstatus b on a.NodeCode = b.NodeCode and b.Deleted = 0 and b.OrgCode = '1004' and a.WorkFlowStatusId = b.id and b.WorkFlowCode='Common-1004-005'

                        join basic_workflowstatus b1 on b.Nodename = b1.Nodename and b1.Deleted = 0 and b1.OrgCode = InOrgCode and b1.WorkFlowCode=CONCAT('Common-', InOrgCode, '-', InItemId)

                        where  (a.NodeCode like 'Code1004005%' or a.NodeCode in('Common-1004-005_End','STOPPED','Common-1004-005_Start')) and a.OperationCode like '1000%' and a.Deleted = 0

                        ;

                    END IF;

                END IF;

            END IF;

        END IF;

    END IF;

    #select * from tb_workflowjsoninfo;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

    #事务提交/回滚模块

    IF sys_ErrCode <> '00000' THEN

        SET Result = 1;

        ROLLBACK;

        update basic_ordertypeinfo

        set IfInitialize = 3

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

    ELSE

        SET Result = 0;

        update basic_ordertypeinfo

        set IfInitialize = 1

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

        COMMIT;

    END IF; #返回结果



    SELECT Result         AS ErType,

           sys_ErrMessage AS ErMessage; #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'CreateWorkFlow'                            AS Logger,

           'proc_CreateWorkFlow'                       AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           concat(InOrgCode, InItemId, sys_ErrMessage) AS ErrMessage,

           NOW()                                       AS LogTime;

END

proc_flinktest

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_flinktest \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_flinktest`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_flinktest`()
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Comment: flnik测试



SET @i=1;

WHILE @i<500 DO

	

	INSERT INTO flink_tablea(Id,TABLEAFIELDA,TABLEAFIELDB) 

	SELECT @i,@i,@i;

	

	SET @j=1;

	  WHILE @j<500 DO

	

	  INSERT INTO flink_tableb(TABLEBFIELDA,TABLEBFIELDB)

	  SELECT @i,@j;

	

	  SET @j=@j+1;

		

		#SELECT SLEEP(0.5);

		

	  END WHILE;

	

	SET @i=@i+1;

	

END WHILE;



END

proc_VhsCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细-质量考核明细表'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderdetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderdetail(WorkOrderId,CustomerId,CustomerName,SubCompanyId,SubCompanyName,AppCode,OrderType,SubjectCode,SubjectName,

                                  ProCode,ProName,CityCode,CityName,UserName,PlateNumber,VinNumber,CreatedAtDay,CreatedAtDayName,CreatedAtTime,

                                  WorkFlowAcceptDay,WorkFlowAcceptTime,RecordDay,RecordTime,ApprovalTime,CerRegistDate,ResultAuditState,ResultRejectReason,

                                  ReceiptAuditState,ReceiptRejectReason,ReturnAuditState,ReturnRejectReason,

																	ReceiveState,FirstReturnAuditState,FirstReturnRejectReason,

																	

																	HandlingMethodCode,HandlingMethodName,HandlingTeamCode,

                                  HandlingTeamName,RecordLimitState,AcceptLimitState,ApprovalOperCode,ApprovalOperName,ApprovalDoneAt,AcceptOperCode,

                                  AcceptOperName,RecordOperCode,RecordOperName,ServiceCode,ServiceName,ServicePosition,CarRemark,VhsAppCode,

                                  AppointRemark,ServiceRemark,ModifyRemark,CheckRemark,RequiredTime,InsertTime,Deleted,ReceiveTime,ActualReceiveMethod,ExpressNumber

                                  )

SELECT T.Id AS WorkOrderId,

       T.CustomerId AS CustomerId,

       T.CustomerName AS CustomerName,

       T.SubCompanyId AS SubCompanyId,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

       '7101' AS OrderType,

       B.SubjectCodeSummary AS SubjectCode,

       B.SubjectNameSummary AS SubjectName,

       A.ProCode AS ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       C.UserName AS UserName,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreatedAtDay,

       case DAYNAME(a.CreatedAt)

           when 'Monday' then '星期一'

           when 'Tuesday' then '星期二'

           when 'Wednesday' then '星期三'

           when 'Thursday' then '星期四'

           when 'Friday' then '星期五'

           when 'Saturday' then '星期六'

           when 'Sunday' then '星期日'

           end AS CreatedAtDayName,

       time(a.CreatedAt) AS CreatedAtTime,

       DATE_FORMAT(fn_GetWorkFlowTimeInfo(T.id,'分配工单'),'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(fn_GetWorkFlowTimeInfo(T.id,'分配工单')) AS WorkFlowAcceptTime,

       DATE_FORMAT(fn_GetLastRecordTimeById(T.id),'%Y-%m-%d') AS RecordDay,

       time(fn_GetLastRecordTimeById(T.id)) AS RecordTime,

       T.ApprovalTime AS ApprovalTime,

       D.CerRegistDate AS CerRegistDate,

       D.ResultAuditState AS ResultAuditState,

       D.ResultRejectReason AS ResultRejectReason,

       D.ReceiptAuditState AS ReceiptAuditState,

       D.ReceiptRejectReason AS ReceiptRejectReason,

       D.ReturnAuditState AS ReturnAuditState,

       D.ReturnRejectReason AS ReturnRejectReason,

			 

			 -- 2024.10.31新增 yft

			 m.ReceiveState,

       (SELECT n.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnAuditState,

			 (SELECT n.BussinessJson->>'$.FirstReturnRejectReason' AS `FirstReturnRejectReason` FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnRejectReason,

			 

			 

       E.HandlingMethodCode AS HandlingMethodCode,

       E.HandlingMethodName AS HandlingMethodName,

       E.HandlingTeamCode AS HandlingTeamCode,

       E.HandlingTeamName AS HandlingTeamName,

       D.RecordLimitState AS RecordLimitState,

       D.AcceptLimitState AS AcceptLimitState,

       h.OperatePerson AS ApprovalOperCode,

       h.OperateName AS ApprovalOperName,

       h.OperateTime AS ApprovalDoneAt,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',1) AS AcceptOperCode,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',2) AS AcceptOperName,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',1),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',1)) AS RecordOperCode,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',2),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',2)) AS RecordOperName,

       F.ServiceCode AS ServiceCode,

       F.ServiceName AS ServiceName,

       T.ExtraJson->>'$.ServicePosition' AS ServicePosition,

       C.Remark AS CarRemark,

       T.v_vhsAppCode AS VhsAppCode,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 9 order by h1.InsertTime desc limit 1) AS AppointRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 12 order by h1.InsertTime desc limit 1) AS ModifyRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       A.RequiredTime AS RequiredTime,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       min(i.OperateTime) as ReceiveTime,

  case m.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

       if(m.ExpressJson->>'$.ExpressNumber'='null',null,m.ExpressJson->>'$.ExpressNumber') ExpressNumber

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkauditinfo    D ON D.WorkOrderId = T.Id AND D.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_workoperateinfo     h on t.id = h.WorkOrderId and h.Reason = '考核通过' and h.Deleted=0

left join tb_workoperateinfo i on t.id = i.WorkOrderId and i.Deleted=0 and i.Reason in('归还','系统自动归还')

left join tb_vhsworkfilereceiveinfo m on t.id = m.workorderid and m.deleted=0 and m.ReceiveType=2

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_CreateOrgRule

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgRule \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgRule`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-附件规则+人员属性匹配条件

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

 DECLARE sys_ErrMessage VARCHAR(200);

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE SubRuleCode1 varchar(50);

 DECLARE SubRuleCode2 varchar(50);

 DECLARE SubRuleCode3 varchar(50);

 DECLARE SubRuleCode4 varchar(50);

 DECLARE SubRuleCode5 varchar(50);

 DECLARE MatchNodeCode1 varchar(50);

 DECLARE MatchNodeCode2 varchar(50);

 DECLARE MatchNodeCode3 varchar(50);

 DECLARE MatchNodeCode4 varchar(50);

 DECLARE MatchNodeCode5 varchar(50);

 declare RuleTypeCode1 varchar(50);

declare accessoryresourceId1 varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 select concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5;

 select concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into MatchNodeCode1,MatchNodeCode2,MatchNodeCode3,MatchNodeCode4,MatchNodeCode5;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted#,createdat

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用附件规则', '通用人员属性规则')*/

    #附件

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999457','orderType','工单类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'orderType',0,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999055','subjectCode','服务科目','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',1,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999053','addressfullName','服务地址-省+市+区','string',2,1,'"请选择"','pro-urban-areas',1,1,'in,nin,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'addressfullname',2,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999056','customerName','客户名称','string',2,1,'"请输入"','text',null,1,'eq,neq,cn,ncn,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'customername',3,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999998988','appointStatus','异常反馈类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,1,'[{"label": "改约", "value": "1", "default": false}, {"label": "等通知", "value": "2", "default": false}, {"label": "请求关闭", "value": "3", "default": false}]','{}','','',1,InOrgCode,InOrgName,'appointStatus',4,null,now(),0);

#select * from common_subruleinfo where SubRuleName = '适用全部工单的附件要求';

 /*

 select concat('RTC',date_format(now(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) into RuleTypeCode1;



 INSERT INTO `basic_datadictionary` (`Id`,`Code`,`Name`,`ParentId`,`OrgCode`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

 VALUES

        (fn_nextval('DD'),RuleTypeCode1,'异常反馈附件','DD0999999085',InOrgCode,null,null,now(),null,null,null,null,0);

 */

INSERT INTO `common_subruleinfo` (`Id`,`SubRuleCode`,`SubRuleName`,`RuleTypeCode`,`Priority`,`OrgCode`,`Enable`,`EnabledTime`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(fn_nextval('SR'),SubRuleCode1,'适用全部工单的附件要求','RTC202208256448',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode2,'适用全部工单的附件要求','RTC202203080001',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode3,'适用全部工单的附件要求','RTC202203080002',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode4,'适用全部工单的附件要求','RTC202210048979',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode5,'适用全部工单的附件要求','RTC202209204082',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0);

select fn_nextval('BM') into accessoryresourceId1;

 INSERT INTO `basic_accessoryresource` (`Id`,`Code`,`Name`,`OrgCode`,`ResourceId`,`Remark`,`CreatedById`,`ResoureJson`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(accessoryresourceId1,fn_nextval('BC'),'其他附件',InOrgCode,null,null,NULL,'{"ResourceNum": {"MaxNum": 100, "MinNum": 0, "ConditionType": "bt"}, "ResourceType": [{"ExtName": "jpg,jpeg,png", "ResType": "ResourcePic", "TypeName": "图片"}, {"ExtName": "mp4,m4v,webm", "ResType": "ResourceVideo", "TypeName": "视频"}, {"ExtName": "ogg,mp3,wav,m4a", "ResType": "ResourceAudio", "TypeName": "音频"}, {"ExtName": "txt,pdf,doc,docx,xls,xlsx,ppt,pptx", "ResType": "ResourceDoc", "TypeName": "文档"}]}',NOW(),null,null,null,null,0);

 /*select fn_nextval('SR') as id,

       concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))subrulecode,

       subrulename, ruletypecode, priority,

       InOrgCode orgcode, enable,

       date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00') as enabledtime,

       null createdbyid,

       now() createdat, null updatedbyid, null updatedat, null deletedbyid, null deletedat, 0 deleted

 from common_subruleinfo a

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0;*/

#select subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted from common_rulematchconditions

# where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 /*

 insert into common_rulematchconditions( subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted)

 select distinct a1.SubRuleCode subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, now() inserttime, 0 deleted

 from common_rulematchconditions b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = InOrgCode and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

 INSERT INTO `common_rulematchconditions` (`SubRuleCode`,`MatchGroup`,`MatchGroupOperater`,`PropertyId`,`MatchOperater`,`PropertyValues`,`InsertTime`,`Deleted`)

VALUES

 (SubRuleCode4,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode5,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode3,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode1,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode2,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0);

 update common_rulematchconditions

 set PropertyId=(select id

                 from common_listsearchproperty

                 where PropertyName = '工单类型'

                   and OrgCode = InOrgCode

                   and EntityName = '通用附件规则'#'通用附件规则'

                   and Deleted = 0)

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   ;

#select * from common_rulematchnodes where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

INSERT INTO `common_rulematchnodes` (`Id`,`SubRuleCode`,`MatchNodeCode`,`MatchNodeName`,`PropertyJson`,`ActionsJson`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

 (fn_nextval('MN'),SubRuleCode4,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode4,MatchNodeCode4,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode5,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode5,MatchNodeCode5,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode3,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode3,MatchNodeCode3,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode1,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode1,MatchNodeCode1,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode2,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode2,MatchNodeCode2,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0)

 ;

update common_rulematchnodes

 set ActionsJson=json_set(ActionsJson,'$[0].actionContent.actionLists[0].orgCode',InOrgCode,

    '$[0].actionContent.actionLists[0].id',accessoryresourceId1)

 where MatchNodeCode<>'root'

 and SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and ActionsJson->>'$[0].actionContent.actionLists[0].orgCode'='1004';

 /* insert into common_rulematchnodes( id, subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     createdat,deleted)

 select distinct  a1.subrulecode subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     now() createdat, 0 deleted

 from common_rulematchnodes b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = '1004' and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

#select * from common_rulematchrelation where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 INSERT INTO common_rulematchrelation(ID, SUBRULECODE, LINKTYPE, LINKTYPENAME, STARTMATCHNODE, ENDMATCHNODE, LINKPROPERTYJSON, LINKACTIONSJSON, SORTORDER, CREATEDAT, DELETED)

values

(fn_nextval('MR'),SubRuleCode1, 'DefaultType', '', 'root', MatchNodeCode1, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode2, 'DefaultType', '', 'root', MatchNodeCode2, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode3, 'DefaultType', '', 'root', MatchNodeCode3, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode4, 'DefaultType', '', 'root', MatchNodeCode4, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode5, 'DefaultType', '', 'root', MatchNodeCode5, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0)

 ;

 update common_rulematchrelation

 set LINKPROPERTYJSON=json_set(LinkPropertyJson, '$[0].MatchConditions[0].PropertyId', (select id

                                                                                        from common_listsearchproperty

                                                                                        where PropertyName = '工单类型'

                                                                                          and OrgCode = InOrgCode

                                                                                          and EntityName = '通用附件规则'#'通用附件规则'

                                                                                          and Deleted = 0))

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   and LINKPROPERTYJSON ->> '$[0].MatchConditions[0].PropertyId' = 742;

 update common_rulematchrelation

 set LinkActionsJson=json_set(LinkActionsJson,

     '$[0].Rules[0].RuleName',replace(replace(LinkActionsJson->>'$[0].Rules[0].RuleName','SRC202211064459',SubRuleCode),'MR9999999400',Id),

     '$[0].WorkflowName',replace(replace(LinkActionsJson->>'$[0].WorkflowName','SRC202211064459',SubRuleCode),'MR9999999400',Id))

 where SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and Deleted = 0;



#人员属性

     INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999058','affiliatedInstitution','一级机构','string',2,1,'"请选择"','select',1,1,'in',1,1,2,'"{ \\"url\\": \\"UserInfoManage/UserInfo/GetInstitutionalByProvider\\"}"','{}','code','name',1,InOrgCode,InOrgName,'affiliatedinstitution',1,null,now(),0),

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999057','ascription','人员归属','string',2,1,'"请选择"','select',1,1,'in,en,nn',1,1,2,'"{ \\n    \\"url\\": \\"UserInfoManage/Ascription?operateAttributes=&haveNullAscription=true\\"\\n}"','{}','','',1,InOrgCode,InOrgName,'ascription',0,null,now(),0);



 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage; #日志记录生成模块



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgRule'                             AS Logger,

        'proc_CreateOrgRule'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;

     END

proc_WorkflowBack

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack`(InOrderId char(12),InNewStatus int )
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退执行sql;





#InOrderId 订单Id

#InNewStatus 新状态值 







/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_tb_workorderinfo text ; -- 修改主表sql 

		DECLARE p_tb_workorderstatus text  ; -- 修改状态表sql

		DECLARE p_workflowruntimesteps text; -- 修改步骤表sql

		DECLARE p_workflowruntimeitems  text; -- 修改运行时主表sql

		DECLARE p_workflowruntimeactors  text; -- 修改人员表sql

		DECLARE p_tb_workflowinfo text; -- 修改工作流信息表sql

		

		SET result='';

		

		# 0 获取当前步骤和当前步骤的排序

		select c.Id,c.SortOrder into @current_step_id,@px

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

		join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

		where a.TargetEntityId=InOrderId

		and d.WorkStatus=InNewStatus

		order by c.SortOrder DESC LIMIT 1 -- 可能有多次相同步骤,取最后一次

		;

		

		

		

		 

		 #1、修改tb_workorderinfo状态

		 

	   select concat('update tb_workorderinfo set WorkStatus=',InNewStatus,' where Id="',a.Id, '";') into p_tb_workorderinfo from  tb_workorderinfo a where id=InOrderId ;		  

		 SET result=CONCAT(result,'-- tb_workorderinfo:\n',p_tb_workorderinfo,'\n');

		 

		 #2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)    

	  select 

	  concat('update tb_workorderstatus set WorkStatus=',InNewStatus,', NodeCode="',c.NodeCode,'",StepStatus="PROCESSING", StepName="',c.NodeName,'",PreStepStatus="ACCEPTED",PreStepName="',(select Name FROM workflowruntimesteps where RuntimeItemId=a.Id AND Deleted=0 and SortOrder<@px order by SortOrder desc limit 1 ),'" where WorkOrderId="', InOrderId , '" and deleted=0;') into p_tb_workorderstatus

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		join tb_workorderstatus d on a.TargetEntityId=d.WorkOrderId

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 

		and c.WorkStatus=InNewStatus;

		

		SET result=CONCAT(result,'-- tb_workorderstatus:\n',p_tb_workorderstatus,'\n');

		

		

		#3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

    



		

		

		

		select GROUP_CONCAT(`SQL语句` SEPARATOR '\n') into p_workflowruntimesteps from 

		(

			select   

			case when c.SortOrder=@px  then concat('update workflowruntimesteps set AcceptedNumber=0,	DeclinedNumber=0 ,`Status`="PROCESSING" where id ="',c.Id,'";') 

			when c.SortOrder>@px then concat('update workflowruntimesteps set deleted=1 where id ="',c.Id,'";') 

			else null  end as 'SQL语句',

			d.WorkStatus,d.NodeName,c.*    

			from workflowruntimeitems a

			join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

			join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

			join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

			where a.TargetEntityId=InOrderId		

			having SQL语句 is not null 

			order by c.SortOrder 

		)x; 

		

		SET result=CONCAT(result,'-- workflowruntimesteps:\n',p_workflowruntimesteps,'\n');	

		 

		 

		 

		 #4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

		 select concat('update workflowruntimeitems set CurrentStepId="',@current_step_id,'",Status="PROCESSING" where Id="',a.Id,'";')

		 into p_workflowruntimeitems

		 from workflowruntimeitems a where TargetEntityId=InOrderId  and Deleted=0;  	   

		 SET result=CONCAT(result,'-- workflowruntimeitems:\n',p_workflowruntimeitems,'\n'); 

		

		

		

		 #5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark) 

			set p_workflowruntimeactors=CONCAT("UPDATE `serviceordercenter`.`workflowruntimeactors` SET `Processed`=b'0',`ProcessedAt`=null,`WorkflowHandlingStatusId`=null,`Status`='PROCESSING',`Active`=b'0' ,remark=null WHERE `RuntimeStepId`='",@current_step_id,"';");

		  SET result=CONCAT(result,'-- workflowruntimeactors:\n',p_workflowruntimeactors,'\n');

	



     #6、tb_workflowinfo表删除多余步骤

		 select 

		 GROUP_CONCAT(CONCAT('update tb_workflowinfo set deleted=1 where id=',a.Id,';') SEPARATOR '\n' ) into p_tb_workflowinfo

		 from tb_workflowinfo  a where WorkOrderId=InOrderId and SortOrder>@px and deleted=0 ;

		 

		 

		 SET result=CONCAT(result,'-- tb_workflowinfo:\n',p_tb_workflowinfo,'\n');

		 

 

		 

		 











		SELECT result;



END

proc_DelHisWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoForBatch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoForBatch`(

    InBatchNo smallint

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2021-11-16 10:54:24

#Comment: 单个单已完成工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE NDeleted INT(1) DEFAULT 1;

    DECLARE OWorkOrderId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();





    select WorkOrderId into OWorkOrderId

    from serviceordercenterhis.move_hisworkorderinfo a

    where BATCHNO = InBatchNo and a.Result =0

    LIMIT 1;



    WHILE OWorkOrderId IS NOT NULL DO



        CALL proc_DelHisWorkOrderInfoBySingle(OWorkOrderId);

        update serviceordercenterhis.move_hisworkorderinfo A set A.result = 2 WHERE WorkOrderId = OWorkOrderId;



      SET OWorkOrderId=NULL;

        select WorkOrderId into OWorkOrderId

        from serviceordercenterhis.move_hisworkorderinfo a

        where BATCHNO = InBatchNo and a.Result =0

        LIMIT 1;

    end while;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'DelMoveWorkFlowForBatch'                      AS Logger,

           'proc_DelMoveWorkFlowForBatch'                 AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           sys_ErrMessage                              AS ErrMessage,

           NOW()                                       AS LogTime;

*/

END

proc_MoveHisWorkFlowBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveHisWorkFlowBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveHisWorkFlowBySingle`(InWorkOrderId varchar(12), InDeleted smallint)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022-12-05 10:54:24

#Comment: 单个单历史数据工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #start transaction ;

    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenterhis.workflowcompleteitems

    where TargetEntityId = InWorkOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InWorkOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN

        delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimeitems

        where id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimesteps

        where RuntimeItemId = ORuntimeItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowRuntimeItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (ORuntimeItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowRuntimeActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowRuntimeSteps

                                        WHERE RuntimeItemId IN (ORuntimeItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowRuntimeComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowRuntimeActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowRuntimeSteps

                                                                                    WHERE RuntimeItemId IN (ORuntimeItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowruntimeactivities

        where RuntimeItemId = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id;

      /*

        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;*/

        end if;

        if (ORuntimeItemId is null and ((SELECT ID

                                         FROM serviceordercenter.workflowcompletesteps

                                         WHERE DELETED = 0

                                           AND RuntimeItemId = OCompleteItemId

                                           AND NAME = '结束') is not null))

        then



           delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompleteitems

        where id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompletesteps

        where runtimeitemid = OcompleteItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowcompleteItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (OcompleteItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowcompleteActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowcompleteSteps

                                        WHERE RuntimeItemId IN (OcompleteItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowcompleteComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowcompleteActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowcompleteSteps

                                                                                    WHERE RuntimeItemId IN (OcompleteItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowcompleteactivities

        where RuntimeItemId = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id;

/*

        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;*/

           end if;

    IF ORuntimeItemId IS NULL  and OCompleteItemId is null THEN

        UPDATE move_workflowuserinfo a

        SET a.Remark=CONCAT(IFNULL(a.Remark, ''), '历史数据工作流中无Instance信息;')

        WHERE a.WorkOrderId = InWorkOrderId;

        SET Result = 1;

end if;

set foreign_key_checks = 1;

#返回结果

SELECT Result AS ErType, sys_ErrMessage AS ErMessage;

SET @NRESULT = Result;

update move_workflowuserinfo A

set A.result = Result,

    a.Remark=concat(IFNULL(a.Remark, ''), ' ', IFNULL(sys_ErrMessage, ''))

WHERE WorkOrderId = InWorkOrderId;



/*IF Result = 1 THEN

        ROLLBACK;

    ELSE

        COMMIT;

    END IF;*/

#日志记录生成模块

/*

INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

SELECT Result                                                 AS IsSuccess,

       'MoveHisWorkFlowBySingle'                                 AS Logger,

       'proc_MoveHisWorkFlowBySingle'                            AS ProcedureName,

       TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())            AS TimeSpan,

       sys_ErrCode                                            AS ErrCode,

       concat(InWorkOrderId, ' ', IFNULL(sys_ErrMessage, '')) AS ErrMessage,

       NOW()                                                  AS LogTime;

*/

END

proc_VhsCompletedWorkOrderInfoById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderInfoById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderInfoById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderInfoById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderinfodetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderinfodetail(workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,ReceiveState,FirstReturnAuditState,FirstReturnRejectReason

                                  )

select workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,

																			 ReceiveState, FirstReturnAuditState, FirstReturnRejectReason

	

	

	

	 from(

SELECT T.Id AS WorkOrderId,

       A.OrderType AS OrderType,

       T.CustomerName AS CustomerName,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

        b.SubjectCodeSummary as SubjectCode,

       B.SubjectNameSummary AS SubjectName,

        a.ProCode as ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       A.AreaCode AS AreaCode,

       A.AreaName AS AreaName,

       C.UserName AS UserName,

       c.UserTel as UserTel,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreateDay,

       time(a.CreatedAt) AS CreateTime,

       a.CreatedAt as CreatedAt,

       DATE_FORMAT(l.v_LastDistributeTime,'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(l.v_LastDistributeTime) AS WorkFlowAcceptTime,

       DATE_FORMAT(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime),'%Y-%m-%d') AS RecordDay,#有补录取补录,没有补录取备案

       time(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime)) AS RecordTime,

       L.v_LastRecordTime AS LastRecordTime,

       fn_GetAFCPassAuditTimeById(a.id) AS ApprovalTime,

       a.WorkStatus AS WorkStatus,

       fn_GetStatusNameByCode(a.WorkStatus) as WorkStatusName,

       T.ReceiverUserName AS ReceiverUserName,

       T.ReceiverLoginName AS ReceiverLoginName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonName,NULL) AS RecordPersonName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL) AS RecordPersonCode,

       GetAscriptionByLoginName(if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL),2) AS RecordPersonDepartName,

       M.BussinessJson->>'$.RecordPersonRoletName' AS RecordPersonRoletName,

       F.ServiceName AS ServiceName,

       F.ServiceCode AS ServiceCode,

       T.Requirements  AS Requirements ,

       T.v_vhsAppCode AS VhsAppCode,

       C.Remark AS CarRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       # 联系人	联系电话	期望办理日期	期望办理时间	改约人	改约时间	改约一级原因	改约二级原因	改约联系人	改约联系日期

       a.LinkMan as LinkMan,

       a.LinkTel as LinkTel,

       DATE_FORMAT(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime),'%Y-%m-%d') as AppointDay,

       time(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime)) as AppointTime,

       fn_GetLastAppointPersonById(a.id,2) AS AppointPerson,

       fn_GetAppointTime(a.id,4) AS AppointSubmmitTime,

       (select FailText

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointFailText,

       (select g.ApplyReason

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointApplyReason,

       (select G.ExtraJson->>'$.LinkMan'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkMan,

       (select DATE_FORMAT(G.ExtraJson->>'$.LinkTime','%Y-%m-%d')

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkTime,

       # 办理完成日期	预约办理日期	改约联系结果

       (select cast(G.ExtraJson->>'$.CompleteTime' as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointCompleteTime,

       (select cast(substr(G.ExtraJson->>'$.ScheduledDate',1,19) as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointScheduledDate,

       (select G.ExtraJson->>'$.LinkResult'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkResult,

       # 收件资料是否集齐	收件资料集齐时间	已收集材料清单	抵押权人	资金方	实际抵押权人

       if(J.IsCollectedFile=1,'是','否') AS IsCollectedFile,

       cast(substr(JSON_UNQUOTE(JSON_EXTRACT((J.ReceiveDetailJson->>'$.ReceiveLog'),

                   concat('$[',json_length(J.ReceiveDetailJson->>'$.ReceiveLog')-1,'].ReceiveTime'))),1,19) as datetime) AS ReceiveTime,

       fn_GetReceiveFileNameById(t.id) AS ReceiveFileName,

       T.Mortgagee AS Mortgagee,

       T.MortgageInfoJson->>'$.FundSide' AS FundSide,

       e.ActualMortgagor AS ActualMortgagee,

       # 买方联系人	所属分公司	所属大区	渠道	租赁类型	放款类型

       t.BuyerLinkMan as BuyerLinkMan,

       T.MortgageInfoJson->>'$.SubCompanyName' AS YXSubCompanyName,

       T.MortgageInfoJson->>'$.CompanyRegion' AS YXCompanyRegion,

       T.MortgageInfoJson->>'$.ChannelFullName' AS ChannelFullName,

       #租赁类型 放款类型

       case T.MortgageInfoJson->>'$.LeaseType' when 1 then '车主融' when 0 then '消费融' end AS LeaseType,

       case T.MortgageInfoJson->>'$.LoanType' when 0 then '先抵后放' when 1 then '先放后抵' end AS LoanType,

       #易鑫产品方案类型productSolutionType	易鑫合同状态	合同生效时间ContractEffectiveTime	第二联系人	第二联系人电话

       T.ProductSolutionType AS ProductSolutionType,

       T.ContractStatus AS ContractStatus,

       T.MortgageInfoJson->>'$.ContractEffectiveTime' AS ContractEffectiveTime,

       A.SecondLinkMan AS SecondLinkMan,

       A.SecondLinkTel AS SecondLinkTel,

       # 预计上牌地址	易鑫产品类别productCategory	快递公司名称	快递单号	收件人姓名	收件人电话	收件人地址	办理团队	办理方式	资料收齐时间

       T.LicensingPlace AS LicensingPlace,

       t.ProductCategory AS ProductCategory,

       k.ExpressJson->>'$.ExpressCompany' AS ExpressCompany,

       k.ExpressJson->>'$.ExpressNumber' AS ExpressNumber,

       k.ExpressJson->>'$.OperTel' AS ExpressOperTel,

       k.ReceiveDetailJson->>'$.ReturnName' AS ReturnName,

       k.ReceiveDetailJson->>'$.ReturnTel' AS ReturnTel,

       k.ReceiveDetailJson->>'$.ReturnAddress' AS ReturnAddress,

       E.HandlingTeamName AS HandlingTeamName,

       E.HandlingMethodName AS HandlingMethodName,

       J.CollectedTime AS CollectedTime,

       a.RequiredTime as RequiredTime,

       fn_GetAFCPassAuditTimeById(a.id) AS AuditDoneAt,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       row_number() over (partition by T.id order by n.OperateTime) as rw,

       n.OperateTime as ReturnTime,

  case k.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

	

	-- 2024-10-31新增 yft

	K.ReceiveState,

	M.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState,

	M.BussinessJson->>'$.FirstReturnRejectReason' AS FirstReturnRejectReason



	

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_recordinfo          i on a.id = i.WorkOrderId and i.Deleted = 0

LEFT JOIN tb_vhsworkfilereceiveinfo J ON T.ID = J.WorkOrderId and J.Deleted = 0 and J.ReceiveType = 1

left join tb_vhsworkfilereceiveinfo K ON T.ID = K.WorkOrderId AND K.Deleted = 0 AND K.ReceiveType = 2

left join tb_workflowjsoninfo L on t.id = l.WorkOrderId and l.Deleted = 0

left join tb_workbussinessjsoninfo M on t.id = m.WorkOrderId and m.Deleted = 0

left join tb_workoperateinfo n on t.id = n.WorkOrderId and n.Deleted=0 and n.Reason in('归还','系统自动归还')

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

    ) a

where a.rw = 1

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderInfoById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderInfoById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_MoveWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoBySingle \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoBySingle`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;





    insert into serviceordercenterhis.tb_abnormalorder_log

    select a.*

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_abnormalorder_log a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;





    insert into serviceordercenterhis.tb_workorderinfo

    select a.*

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workserviceinfo

    select a.*

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workservicesubject

    select a.*

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worksignininfo

    select a.*

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktaginfo

    select a.*

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktempinfo

    select a.*

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worksubjectsummary

    select a.*

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_auditinfo

    select a.*

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_auditinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custoperatelog

    select a.*

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custoperatelog a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;



    insert into serviceordercenterhis.tb_favoriteriskorder

    select a.*

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_favoriteriskorder a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_handleriskorder

    select a.*

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_handleriskorder a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workriskstatus

    select a.*

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workriskstatus a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatime

    select a.*

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatime a,

      tmp_singleorderid B

 WHERE a.ID = B.Id

   AND B.uuid = @UU;*/

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskhistoryorder

    select a.*

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskhistoryorder a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    insert into serviceordercenterhis.tb_riskorderbehavior_detail

    select a.*

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior_detail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskorderbehavior

    select a.*

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo

    select a.*

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderlabelinfo

    select a.*

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderlabelinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatimehis

    select a.*

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatimehis a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his  a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo_his

    select a.*

    from serviceordercenter.tb_riskworkorderinfo_his  a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo_his a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis   a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfohis

    select a.*

    from serviceordercenter.tb_riskworkorderinfohis   a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfohis  a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo    a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_workorderevaluateinfo

    select a.*

    from serviceordercenter.tb_workorderevaluateinfo    a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderevaluateinfo   a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_usedcarcheckinfo

    select a.*

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_usedcarcheckinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workaddressinfo

    select a.*

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workaddressinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workbussinessjsoninfo(Id,WorkOrderId, BussinessJson,DynamicId,InsertTime,Deleted)

    select a.Id,a.WorkOrderId, a.BussinessJson,a.DynamicId,a.InsertTime,a.Deleted

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workbussinessjsoninfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workcreditinfo

    select a.*

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workcreditinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_interactivestate

    select a.*

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_interactivestate a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_mortgageechangerecord

    select a.*

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_mortgageechangerecord a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_numdiffinfo

    select a.*

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_numdiffinfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_devicestatuslog

    select a.*

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custcolumn

    select a.*

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    insert into serviceordercenterhis.tb_appointauditinfo

    select a.*

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointment

    select a.*

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointmentconcat

    select a.*

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatedinfo

    select a.*

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatinginfo

    select a.*

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_recordinfo

    select a.*

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_paylog

    select a.*

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_remarkinfo

    select a.*

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_vindiffinfo

    select a.*

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workcarinfo

    select a.*

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeedetail

    select a.*

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeinfo

    select a.*

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeitem

    select a.*

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeremark

    select a.*

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsdetail

    select a.*

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsinfo

    select a.*

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixitemdetail

    select a.*

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixitemdetail a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixiteminfo

    select a.*

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixiteminfo a,

       tmp_singleorderid B

  WHERE a.ID = B.id

    AND B.uuid = @UU;*/



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixpartsrelation

    select a.*

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixpartsrelation a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixparts

    select a.*

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixparts a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workflowinfo

    select a.*

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workflowinfo a,

  tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workflowjsoninfo(id, workorderid, runtimeitemid, stepjson, inserttime, deleted)

    select a.id, a.workorderid, a.runtimeitemid, a.stepjson, a.inserttime, a.deleted

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workgoodsdetail

    select a.*

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_other

    select a.*

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_otherinfo

    select a.*

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_extra

    select a.*

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsinfo

    select a.*

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workinsurinfo

    select a.*

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workoperateinfo

    select a.*

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into tb_workoperationinfo

    select a.*

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderrelation

    select a.*

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worknewcarinfo

    select a.*

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderstatus

    select a.*

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpolicyeffdate

    select a.*

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpriceedit_log

    select a.*

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workprivatephone

    select a.*

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.basic_resourceitem

    select a.*

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workresourceinfo

    select a.*

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

  delete a

  from serviceordercenter.tb_workresourceinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;

    */



    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workrevisedetail

    select a.*

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

    delete a from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

     */



    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workreviseinfo

    select a.*

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */



    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;

    insert into serviceordercenterhis.tb_workaftersaleinfo

    select a.*

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */

 set @OrderDelted = (select Deleted from tb_workorderinfo where id = InOrderId);

 call proc_MoveHisWorkFlowBySingle(InOrderId,@OrderDelted);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'MoveWorkOrderInfoBySingle'               AS Logger,

           'proc_MoveWorkOrderInfoBySingle'          AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;*/



END

proc_WorkflowBack_pre

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack_pre \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack_pre`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退(先查询)





/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_status_now varchar(10) ; -- 当前状态 

		DECLARE p_workflow_name varchar(100) ; -- 工作流名称

		DECLARE p_status_all varchar(5000) ; -- 所有状态和节点定义

		DECLARE p_steps varchar(5000) ; -- 步骤列表

		SET result='';

		 

		

		

		SELECT WorkStatus INTO p_status_now FROM tb_workorderinfo WHERE Id=InOrderId;

		SET result=CONCAT(result,'当前状态:',IFNULL(p_status_now,''),'\n');

		

		

		SELECT b.`Name` INTO p_workflow_name  FROM workflowruntimeitems a,workflowitems b where a.WorkflowItemId=b.Id and a.TargetEntityId=InOrderId and a.deleted=0 and b.deleted=0 limit 1;

		SET result=CONCAT(result,'工作流名称:',IFNULL(p_workflow_name,''),'\n');

	

	  

		

		select GROUP_CONCAT(concat('WorkStatus:',WorkStatus,' WorkStatusName:',WorkStatusName,' WorkFlowCode:',WorkFlowCode,' WorkFlowName:',WorkFlowName,' NodeCode:(',NodeCode,') NodeName:',NodeName) ORDER BY c.WorkStatus SEPARATOR '\n') into p_status_all

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		

		 SET result=CONCAT(result,'所有状态和节点定义:\n',IFNULL(p_status_all,''),'\n');

 

	

	  select 

		GROUP_CONCAT(concat('排序:',c.SortOrder,' 节点:',c.name,' 运行状态:',ifnull(d.`Status`,'--'),' 运行时步骤Id:',ifnull(d.Id,''))  ORDER BY c.sortorder SEPARATOR '\n')

		into p_steps

	  from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join workflownodes c on b.Id=c.WorkflowItemId and c.deleted=0

		left join workflowruntimesteps d on a.Id=d.RuntimeItemId and d.WorkflowNodeId=c.Id  and d.deleted=0 

	  where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		 

		 

		  

		 SET result=CONCAT(result,'步骤列表:\n',IFNULL(p_steps,''),'\n');





		 

		

		SELECT result;



END

proc_CreateOrgList

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgList \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgList`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-列表配置

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000'; 

 DECLARE sys_ErrMessage VARCHAR(200); 

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务

 

 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

 if (select 1

     from basic_apollo

     where NameSpace = 'ServiceProviderListType'

       and `Key` = concat('ListType',InOrgCode)

       and Deleted = 0) is true then

     set Result = 1;

     rollback;

     set sys_ErrCode = '10000';

     set sys_ErrMessage = concat(ifnull(sys_ErrMessage,''), ' ', InOrgName, '已有Apollo适用页面配置,请联系管理员核查;');

 else

    INSERT INTO `basic_apollo` (NameSpace,`Key`,`Value`,`Remark`)

 VALUES ('ServiceProviderListType', concat('ListType',InOrgCode),

         '{"Value": [

          {

            "OrgCode": "1004",

            "OrgName": "壹好车服测试商户",

            "ListType": [

              {

                "ListCode": "orderMaintenance",

                "ListName": "运营工单",

                "SortOrder": 1

              },

              {

                "ListCode": "areaOrder",

                "ListName": "监管工单",

                "SortOrder": 2,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "qualityOrder",

                "ListName": "待质检工单",

                "SortOrder": 3,

                "PermissionType": "quality",

                "LimitSql": "(WorkStatus = ''11'' or (WorkStatus = ''8'' and AuditStatus = 1))  and exists(select 1 from tb_recordinfo where {{tableName}}.id = workorderid and deleted = 0)",

                "RuleGroupCodes": "EHCFRule003",

                "SortField": "CompleteTime asc"

              },

              {

                "ListCode": "requestCloseOrder",

                "ListName": "请求关闭工单",

                "SortOrder": 4,

                "LimitSql": "typestatus in(2,3)"

              },

              {

                "ListCode": "myToDoOrder",

                "ListName": "我的待办-通用(App)",

                "SortOrder": 150,

                "PermissionType": "todo",

                "LimitSql": "EXISTS(select 1 from tb_operatinginfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.OperCode=@operCode )",

                "RuleGroupCodes": null,

                "SortField": null

              },

              {

                "ListCode": "myAreaOrder",

                "ListName": "我区域内的工单-通用(App)",

                "SortOrder": 151,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "myDoneOrder",

                "ListName": "我办理过的工单-通用(App)",

                "SortOrder": 152,

                "PermissionType": "done",

                "LimitSql": "WorkStatus<>10 AND EXISTS ( select 1 from tb_workflowinfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.StepName in(''提交处理结果'',''重新提交结果'') and g.OperCode=@operCode and g.DoneAt <= NOW())",

                "RuleGroupCodes": null,

                "SortField": null

              }

            ]

          }

        ]}', '');

    update serviceordercenter.basic_apollo

set Value= json_set(Value, '$.Value[0].OrgCode', InOrgCode,'$.Value[0].OrgName', InOrgName)

where Value ->> '$.Value[0].OrgCode' = '1004'

  and NameSpace = 'ServiceProviderListType'

  and `Key`= concat('ListType',InOrgCode)

  and Deleted = 0;

          #serviceordercenter/serviceordercenterhis.common_listsearchproperty 通用域_搜索字段配置项

         

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('适用全部-附件', '通用列表配置')*/

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       now() as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用列表配置')

   and EntityId='ET9999999823';



/*

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',3,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',4,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',6,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requestclosename',7,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999098','regionQuery','服务地址','string',2,1,'"请选择省/市/区"','pro-urban-areas',0,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'regionquery',2,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\"model\\": {\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\"name\\": \\"##\\",\\"paging\\": {\\"pageIndex\\": 1,\\"pageSize\\": 100,\\"noCount\\": true}}}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,null,'text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,null,'select',0,0,'eq',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,null,'select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,null,'text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,null,'text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',5,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',6,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',7,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',8,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',9,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',10,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,0,'in',1,1,1,'[{"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}, {"label": "待提交", "value": "0", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',12,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',13,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,null,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提", "value": "0", "default": false}, {"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0);

*/

#serviceordercenter/serviceordercenterhis.common_listshowproperty 通用域_展示字段配置项

/*select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       'now()' as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置');*/

 INSERT INTO `common_listshowproperty` (`OrderType`,`OrderTypeName`,`SuitFunctionCode`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertySource`,`IsPropertyShow`,`PublishState`,`GroupCode`,`OrgCode`,`OrgName`,`ShowType`,`ShowDetailJson`,`IfShow`,`FieldRegion`,`DataFieldName`,`SortOrder`,`CreatedAt`,`Deleted`)

 select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       now() as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置')

  and EntityId='ET9999999823';

 /*VALUES

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','requestclosename',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999074','requestCloseTime','请求时间',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm:ss\\" }"',1,'body','requestclosetime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999071','appointReason','请求原因',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','appointreason',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"yyyy-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999115','orderTypeName','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertypename',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,1,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0);

*/

    end if;

 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 #日志记录生成模块

 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage;



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgList'                             AS Logger,

        'proc_CreateOrgList'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;





     END

proc_UnDeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_UnDeleteOrderInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_UnDeleteOrderInfo`(

		InOrderId char(12),

        InDeletedId varchar(36)

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年9月4日

#Comment: 工单删除恢复

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

	AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkorderID=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_UnDeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_MoveWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoForBatch \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoForBatch`;

proc_WorkflowJsonCheck_10day

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck_10day \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck_10day`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=NOW()

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里



SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;





#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_HomeDataGenerator

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeDataGenerator \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeDataGenerator`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 智能工单大屏_数据汇总
#CreatedAt: 2023年09月05日08:38:35

  #日志记录定义模块
  DECLARE InDate DATE DEFAULT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
  DECLARE EndDate DATE DEFAULT CURDATE();
  # 今天 CURDATE()
  # 昨天 DATE_ADD(CURDATE(), INTERVAL -1 DAY)
  # 上周一 DATE_ADD(CURDATE(), INTERVAL -7 DAY)
  # 上月1号
  # 去年1月1日
  # 前年1月1日
  DECLARE sys_StartTime  DATETIME;
  DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
  DECLARE sys_ErrMessage VARCHAR(200);
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
  BEGIN GET DIAGNOSTICS CONDITION 1
  sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
  END;
  SET sys_StartTime = CURRENT_TIMESTAMP();

  # 每日
  # 生成基础数据
  call proc_HomeUserArea();
  call proc_HomeOrderdetail(InDate, EndDate);

  ### 大屏地图
  TRUNCATE TABLE home_usermapdaily;
  # 省份
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,1,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.ProCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;
  # 区县
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,3,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.AreaCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;

  # 工单类型 自有服务 三方服务 人员数量
  TRUNCATE TABLE home_usermapdetail;

  DROP TABLE IF EXISTS tm_usermapdetail;
  CREATE TABLE tm_usermapdetail (
  Id bigint unsigned auto_increment comment '自增主键' primary key,
  ProviderCode  varchar(50)                        null comment '服务商编码',
  OrderTypeName varchar(100)                       null comment '工单类型',
  ProCode       varchar(50)                        null comment '区域编码',
  CityCode      varchar(50)                        null comment '区域编码',
  AreaCode      varchar(50)                        null comment '区域编码',
  Ascription    varchar(100)                       null comment '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  LoginName     varchar(50)                        null comment '人员姓名',
  KEY `1` (OrderTypeName),
  KEY `2` (ProviderCode),
  KEY `3` (ProCode),
  KEY `4` (CityCode),
  KEY `5` (AreaCode));

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea
  WHERE OrderTypeName<>'适用全部'
    AND CheckDate=CURDATE();

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT M.ProviderCode,N.OrderTypeName,M.ProCode,M.CityCode,M.AreaCode,M.Ascription,M.LoginName
  FROM (SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea A
  WHERE OrderTypeName='适用全部'
    AND CheckDate=CURDATE()) M
  CROSS JOIN (SELECT DISTINCT OrderTypeName
              FROM home_userarea
              WHERE OrderTypeName<>'适用全部'
                AND CheckDate=CURDATE()) N;

  # 汇总写入正式表--省份
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,ProCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,ProCode;

  # 汇总写入正式表--城市
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,CityCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,CityCode;

  # 汇总写入正式表--区域
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,AreaCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,AreaCode;

  # 汇总写入正式表--全部
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,'ALL',
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName;
  DROP TABLE IF EXISTS tm_usermapdetail;

  ### 服务网络 时间维度: 上月,上周,昨日,今年
  ## 单据
  # 上月
  IF DAY(NOW()) = 1 THEN
  DELETE FROM home_ordercount WHERE DateType=1;
  # 下单量
  INSERT INTO home_ordercount(ProviderCode,ProCode,DateType,CreateCnt)
  SELECT ProviderCode,ProCode,1,
         COUNT(DISTINCT WorkOrderId) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -3 MONTH),'%Y-%m-01')
    AND a.DetailTime10) AS s
  GROUP BY s.ProviderCode,s.ProCode;

  ### 下单数量变化趋势
  # 去年、今年 每月下单量对比 (需要额外初始化数据)
  # 清理单据
  IF DAYOFMONTH(NOW()) = 1 AND DAY(NOW()) = 1 THEN
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 YEAR),'%Y-01-01')
    AND OrderType='ALL';
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < CONCAT(YEAR(CURDATE()), '01-01')
    AND OrderType!='ALL';
  END IF;
  DELETE
  FROM home_ordercreatetrend
  WHERE CheckYear = YEAR(CURDATE())
    AND CheckMonth = MONTH(CURDATE());

  UPDATE home_ordercreatetrend A,
  (SELECT ProviderCode,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,DATE_FORMAT(DetailTime,'%Y-%m')) B
  SET A.CreateCnt=B.CreateCnt
  WHERE A.ProviderCode=B.ProviderCode
    AND A.OrderType='ALL'
    AND A.CheckYear=B.CheckYear
    AND A.CheckMonth=B.CheckMonth;
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT A.ProviderCode,
         'ALL' AS OrderType,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily A
  WHERE A.DetailType=1
    AND A.DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND A.DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND NOT EXISTS(SELECT 1
                   FROM home_ordercreatetrend B
                   WHERE A.ProviderCode=B.ProviderCode
                     AND A.OrderType='ALL'
                     AND B.CheckYear=YEAR(A.DetailTime)
                     AND B.CheckMonth=MONTH(A.DetailTime))
  GROUP BY A.ProviderCode,YEAR(A.DetailTime),MONTH(A.DetailTime);

  # 写Json
  DELETE FROM home_viewdata WHERE DataType=3;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 3, S.ProviderCode,
         JSON_OBJECT("categories", JSON_ARRAY("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"),
          "series",JSON_ARRAY(JSON_OBJECT("name", "去年", "data", JSON_ARRAYAGG(LastYearCnt)),
                              JSON_OBJECT("name", "今年", "data", JSON_ARRAYAGG(ThisYearCnt))
                      )
          )
  FROM (
  SELECT M.ProviderCode,M.Monthy,
    MAX(IF(M.Year=(YEAR(CURDATE())-1),M.CreateCnt,0)) AS LastYearCnt,
    MAX(IF(M.Year=YEAR(CURDATE()),M.CreateCnt,0)) AS ThisYearCnt
  FROM (
  SELECT PC.ProviderCode,H.Monthy,Y.Year,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
  SELECT 1 AS Monthy UNION
  SELECT 2 UNION
  SELECT 3 UNION
  SELECT 4 UNION
  SELECT 5 UNION
  SELECT 6 UNION
  SELECT 7 UNION
  SELECT 8 UNION
  SELECT 9 UNION
  SELECT 10 UNION
  SELECT 11 UNION
  SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_ordercreatetrend P
  WHERE P.OrderType='ALL'
  AND P.OrderType IS NOT NULL
  AND P.ProviderCode<>''
  AND P.CheckYear IN (YEAR(CURDATE()),YEAR(CURDATE()) - 1)
  GROUP BY P.ProviderCode) AS PC
  CROSS JOIN (SELECT YEAR(CURDATE()) AS Year UNION
  SELECT (YEAR(CURDATE()) - 1)) Y
  LEFT JOIN home_ordercreatetrend D
    ON D.ProviderCode=PC.ProviderCode
    AND D.CheckMonth=H.Monthy
    AND D.CheckYear=Y.Year
    AND D.OrderType='ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
  GROUP BY PC.ProviderCode,H.Monthy,Y.Year) AS M
  GROUP BY M.ProviderCode, M.Monthy
  ORDER BY 1,2
  ) AS S
  GROUP BY S.ProviderCode;
  ### 各工单类型下单明细
  # 家充桩安装、公桩巡检、公桩维修、公桩保养
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT ProviderCode,OrderType,COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,OrderType,YEAR(DetailTime),MONTH(DetailTime);
  
  #写Json
  DELETE FROM home_viewdata WHERE DataType=4;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 4, M.ProviderCode,
         JSON_OBJECT("categories",
             JSON_ARRAY("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"),
             "series",JSON_ARRAYAGG(JSON_OBJECT("name", M.TypeName, "data", M.CreateCnt)))
  FROM (SELECT S.ProviderCode,S.TypeName,JSON_ARRAYAGG(S.CreateCnt) AS CreateCnt
  FROM (SELECT PC.ProviderCode,H.Monthy,T.TypeName,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
    SELECT 1 AS Monthy UNION
    SELECT 2 UNION
    SELECT 3 UNION
    SELECT 4 UNION
    SELECT 5 UNION
    SELECT 6 UNION
    SELECT 7 UNION
    SELECT 8 UNION
    SELECT 9 UNION
    SELECT 10 UNION
    SELECT 11 UNION
    SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
    FROM home_ordercreatetrend P
    WHERE P.OrderType<>'ALL'
    AND P.OrderType IS NOT NULL
    AND P.ProviderCode<>''
    AND P.CheckYear=YEAR(CURDATE())
    GROUP BY P.ProviderCode) AS PC
  LEFT JOIN basic_ordertypeinfo T
    ON T.ServiceProviderCode=PC.ProviderCode
    AND T.Deleted=0
  LEFT JOIN home_ordercreatetrend D
    ON D.OrderType<>'ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
    AND PC.ProviderCode=D.ProviderCode
    AND D.OrderType=T.TypeCode
    AND D.CheckYear=YEAR(CURDATE())
    AND D.CheckMonth=H.Monthy
  WHERE H.Monthy<=MONTH(CURDATE())
  GROUP BY PC.ProviderCode,H.Monthy,T.TypeName
  ORDER BY 1,2) AS S
  GROUP BY S.ProviderCode,S.TypeName) AS M
  GROUP BY M.ProviderCode;
  
  END IF;
  ### 累计下单客户TOP10(日更)
  # 客户下单量、占比
  TRUNCATE TABLE home_ordercusttop;
  INSERT INTO home_ordercusttop(ProviderCode,CustomerName,CreateCnt,TotalCnt)
  SELECT S.ProviderCode,S.CustomerName,S.CreateCnt,S.TotalCnt
  FROM (
  SELECT x.ProviderCode,x.CustomerName,
         x.CreateCnt,y.TotalCnt,
         ROW_NUMBER() OVER(PARTITION BY x.ProviderCode ORDER BY x.CreateCnt DESC) AS Num
  FROM (
  SELECT ProviderCode,CustomerName,
         COUNT(1) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode,CustomerName) AS x
  INNER JOIN (
  SELECT ProviderCode,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode) y
    ON x.ProviderCode=y.ProviderCode) AS S
  WHERE S.Num<=10;

  ### TOP3客户近6个月下单趋势 (日更)
  TRUNCATE TABLE home_ordercusttrend;
  INSERT INTO home_ordercusttrend(ProviderCode,CustomerName,CreateCnt,CheckMonth)
  SELECT a.ProviderCode,a.CustomerName,COUNT(1) AS CreateCnt,
         DATE_FORMAT(a.DetailTime,'%Y-%m') AS CheckMonth
  FROM home_orderdetaildaily a,
       (SELECT c.ProviderCode,c.CustomerName,
               ROW_NUMBER() OVER(PARTITION BY c.ProviderCode ORDER BY c.CreateCnt DESC) AS Num
       FROM
       (SELECT b.ProviderCode,b.CustomerName,COUNT(1) AS CreateCnt
        FROM home_orderdetaildaily b
        WHERE b.CheckDate=CURDATE()
        GROUP BY b.ProviderCode,b.CustomerName ) c) d
  WHERE a.DetailType=1
    AND a.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -6 MONTH),'%Y-%m-01')
    AND a.DetailTime10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 关闭工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,3,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=11
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 质检驳回工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,4,
         COUNT(DISTINCT WorkOrderId) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=8
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务客户总数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,5,
         COUNT(DISTINCT CustomerName) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务施工人数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,6,
         COUNT(DISTINCT ServiceCode) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 写入Json
  DELETE FROM home_viewdata WHERE DataType = 1;
  INSERT INTO home_viewdata(DataType,ProviderCode,JsonValue)
  SELECT 1, ProviderCode, JSON_ARRAYAGG(S.J) AS data
    FROM (
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "下单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=1
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "完成工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=2
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "关闭工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=3
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "质检驳回工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=4
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务客户总数",
        "value", IFNULL(CntNum,0),
        "suffixText", "个") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=5
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务施工人数",
        "value", IFNULL(CntNum,0),
        "suffixText", "人") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=6) AS S
    GROUP BY S.ProviderCode;

  ### 近1周作业结束时间段分布
  TRUNCATE TABLE home_worktimetrend;
  # 工作日、非工作日
  INSERT INTO home_worktimetrend(ProviderCode, WorkHour, WorkDayCnt, WeekendCnt)
  SELECT PC.ProviderCode,H.WorkHour,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),0,1))) AS WorkDayCnt,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),1,0))) AS WeekendCnt
  FROM (
  SELECT 2 AS WorkHour UNION
  SELECT 4 UNION
  SELECT 6 UNION
  SELECT 8 UNION
  SELECT 10 UNION
  SELECT 12 UNION
  SELECT 14 UNION
  SELECT 16 UNION
  SELECT 18 UNION
  SELECT 20 UNION
  SELECT 22 UNION
  SELECT 24) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_orderdetaildaily P
  WHERE P.DetailType=4
  AND P.DetailTime<=DATE_ADD(CURDATE(),INTERVAL -7 DAY)
  AND P.DetailTime
                

proc_CreateOrg

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrg \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrg`( InOrgName varchar(50),InShortName varchar(10))
    DETERMINISTIC
BEGIN

    #Author: wangxh

#Create: 2022-10-31 11:48:24

#Comment: 创建商户-基础信息(商户、团队、接单范围、监管范围)

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgCode varchar(10) ;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

	

     select Max(ProviderCode)+1 into  InOrgCode 

        from basic_serviceprovider ;

	

	INSERT INTO `basic_serviceprovider` (`Id`,`ProviderCode`,`ProviderName`,`ShortName`,`Enable`,`ExpireTime`,`BeginWorkTime`,`EndWorkTime`,`UserCenterOrgId`,`OperateAttributes`,`CreatedById`,`CreatedAt`,`Deleted`)

VALUES

       (fn_nextval('SP'),InOrgCode, InOrgName,InShortName,1,'2025-04-03','08:31:00','18:01:00',null,0 #自营 1非自营

       ,null,now(),0);

#serviceordercenter.basic_teaminfo 业务域_服务团队信息

INSERT INTO serviceordercenter.`basic_teaminfo` (`Id`,`TeamName`,`TeamCode`,`ProviderCode`,`ProviderName`,`ServicerCode`,`ServicerName`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('TI'), InOrgName,concat(InOrgCode,'0001'),InOrgCode, InOrgName,InOrgCode, InOrgName,1,now(),0);

#serviceordercenter.basic_institutionalinfo 业务域_机构信息表 #人员管理-团队管理

INSERT INTO serviceordercenter.`basic_institutionalinfo` (`Id`,`ParentId`,`Code`,`Name`,`Level`,`SortOrder`,`OrgCode`,`TeamCode`,`LeaderLoginName`,`InsertTime`,`DeletedAt`,`Deleted`)

VALUES

       (fn_nextval('IJ'),null,concat(InOrgCode,'0001'), InOrgName,1,1,InOrgCode,concat(InOrgCode,'0001'),null,now(),null,0);

#serviceordercenter.basic_rulegroupinfo 基础信息_规则组信息表

INSERT INTO serviceordercenter.`basic_rulegroupinfo` (`Id`,`GroupCode`,`GroupName`,`TeamCode`,`ApplicationId`,`ApplicationName`,`Priority`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('RG'),'EHCFRule001','接单范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',1,1,now(),0),

       (fn_nextval('RG'),'EHCFRule003','监管范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',3,1,now(),0);



	#恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



    #返回结果

    SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

    SELECT Result AS IsSuccess,

    'CreateOrg' AS Logger,

    'proc_CreateOrg' AS ProcedureName,

    TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

    sys_ErrCode AS ErrCode,

    sys_ErrMessage AS ErrMessage,

    NOW() AS LogTime;



END

proc_DelHisWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE InDeleted int;

    DECLARE InWorkOrderId VARCHAR(36) DEFAULT InOrderId;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;

    delete a

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    delete a

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo_his a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfohis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_workorderevaluateinfo a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    delete a

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;





    delete a

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId

    and b.deleted = 0;

    delete a

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    select Deleted into InDeleted from tb_workorderinfo where id = InOrderId;



    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenter.workflowcompleteitems

    where TargetEntityId = InOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN



        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;

    end if;

    if (ORuntimeItemId is null and ((SELECT ID

                                     FROM serviceordercenter.workflowcompletesteps

                                     WHERE DELETED = 0

                                       AND RuntimeItemId = OCompleteItemId

                                       AND NAME = '结束') is not null))

    then



        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;

    end if;

    set foreign_key_checks = 1;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

       # UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        #UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'DelHisWorkOrderInfoBySingle'                   AS Logger,

           'proc_DelHisWorkOrderInfoBySingle'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;



END

proc_AFCReportStatisticsDaily

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AFCReportStatisticsDaily \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AFCReportStatisticsDaily`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AFCReportStatisticsDaily`()
    COMMENT 'AFC统计分析工单明细报表'
BEGIN

#Create: 2021年04月12日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE Result INT(1) DEFAULT 0;



	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



  TRUNCATE TABLE rp_afcworkorderdetail_statistics;



  #开启事务

  START TRANSACTION;



	INSERT INTO rp_afcworkorderdetail_statistics (MainWorkOrderId,WorkOrderId,SubjectCode,SubjectName,

  WorkStatus,ServiceCode,ServiceName,VisitorRole,ServiceProCode,ServiceProName,ProCode,ProName,CustomerId,

  CustomerName,CustSettleId,CustSettleName, CustomerCommitmentDate,RequiredTime,StateCycle,LastRecordTime,

  LastAssignTime,RecordingDuration,AuditRejectState,TotalDistance,RoadBridgePrice,Accommodation,

  TotalOilPrice,TotalInTrafficPrice,RefundPrice,Achievements,Amount,ReceiveAmounts,BaseSalary,IsAddressTrue,

  IsSecondLink,ApprovalResult,IsSceneHandle,OverdueDays,OverduePrincipal,RetreatTime,ReturnedResult,FollowFrequency)



	SELECT t3.RelateId AS MainWorkOrderId,t2.Id AS WorkOrderId,t4.SubjectCode AS SubjectCode,

  t4.SubjectName AS SubjectName,t2.WorkStatus AS WorkStatus,t5.ServiceCode AS ServiceCode,

  t5.ServiceName AS ServiceName,m.VisitorRole AS VisitorRole,



	(

		SELECT t2.ProCode

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

	    AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	)AS ServiceProCode,



	(

		SELECT t2.ProName

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

		AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	) AS ServiceProName,

	t2.ProCode AS ProCode,t2.ProName AS ProName,t2.CustomerId AS CustomerId,t2.CustomerName AS CustomerName,

  t2.CustSettleId AS CustSettleId,t2.CustSettleName AS CustSettleName,

	if((cast(json_extract(m.RecordJson, '$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),

  CAST(LEFT(json_unquote(json_extract(m.RecordJson, '$.CustomerCommitmentDate')),10) AS date),NULL) AS CustomerCommitmentDate,

	t2.RequiredTime AS RequiredTime,

	#质检中11,质检驳回12,已完成9,等待工程师接单4,已出发13,已到达14,15,已接单6,

	fn_GetAfcStateCycleById(t2.Id) AS StateCycle,

	fn_GetAFCLastRecordTimeById(t2.Id) AS LastRecordTime,

	fn_GetAfcLastDispatcherTimeById(t2.Id) AS LastAssignTime,

	(SELECT SUM(Duration) FROM tb_workresourceinfo a

			WHERE  a.WorkOrderId = t1.Id

			AND a.SourceType = 4

			AND a.Duration IS NOT NULL

			AND a.Deleted = 0

	) AS RecordingDuration,

	IF (fn_GetAFCServiceAuditTimesById(t1.Id) > 0, 1, 0)AS AuditRejectState,

	(t1.ReimbursableDistance + t1.AdjustReimbursableDistance + t1.ReturnDistance) AS TotalDistance,

	k1.FeeValue AS RoadBridgePrice,

	k2.FeeValue AS Accommodation,

	(IFNULL(k3.FeeValue,0) + IFNULL(k4.FeeValue,0)) AS TotalOilPrice,

	(IFNULL(k5.FeeValue,0) + IFNULL(k6.FeeValue,0)) AS TotalInTrafficPrice,

  IFNULL(k9.FeeValue,0) AS RefundPrice,

	k7.FeeValue AS Achievements,

	t10.Amount AS Amount,

	k8.FeeValue AS ReceiveAmounts,

	IF(t12.ProCode = '520000',100,85) AS BaseSalary,

	CASE m.RecordJson -> '$.AddressInfoTopCode'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsAddressTrue,

	#是否复联

	#base地址省份对应的外访人的派单机构中

    #1、子单状态为【已完成】【质检中】【质检驳回】

    #2、服务科目【面访谈判】

    #3、满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一种为【可联】即为复联的主单数量

    #上汽客户逻辑:满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一个联系结果为【接通】

            if(

                   (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult') is not null),

                   (if((1 member of (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),1,

                       if((1 member of (json_extract(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),1,

                          if(1 member of (json_extract(m.RecordJson, '$.IsOtherAccess')),1,0)))

                       ),

                   (if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 0),

                       if((json_extract(m.RecordJson, '$.CustomerIsContact') = 0),

                          if((json_extract(m.RecordJson, '$.IsOtherAccess') = 0), 0, 1), 1),

                       if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 1), 1, NULL)))) AS IsSecondLink,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    LIMIT 1)=1,1,0) AS ApprovalResult,

	#是否现场处理IsSiteTreatment

	CASE m.RecordJson -> '$.IsSiteTreatment'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsSceneHandle,

	t11.OverdueDays AS OverdueDays,

  t11.OverduePrincipal AS OverduePrincipal,

	t11.RetreatTime AS RetreatTime,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    AND t13.ReturnedTypeCode IN ('ReturnType002','ReturnType003','ReturnType005')

    LIMIT 1)=1,1,0) AS ReturnedResult,

	t13.v_FollowFrequency as FollowFrequency

	FROM tb_afcworkorderinfo AS t1

	LEFT JOIN tb_workorderinfo AS t2

	  ON t1.Id = t2.Id

	  AND t2.Deleted = 0

	LEFT JOIN tb_workorderrelation AS t3

	  ON t3.WorkOrderId = t1.Id

	  AND t3.Deleted = 0

	LEFT JOIN tb_workservicesubject AS t4

	  ON t4.WorkOrderId = t1.Id

	  AND t4.Deleted = 0

	LEFT JOIN tb_workserviceinfo AS t5

	  ON t5.WorkOrderId = t1.Id

	  AND t5.Deleted = 0

  left join tb_afcfeedetail k1

    on k1.WorkOrderId= t2.Id

    and k1.Deleted= 0

    and k1.PriceTypeCode= 'RoadBridgePrice'

	left join tb_afcfeedetail k2

    on k2.WorkOrderId= t2.Id

    and k2.Deleted= 0

    and k2.PriceTypeCode= 'Accommodation'

	#油费

	left join tb_afcfeedetail k3

    on k3.WorkOrderId= t2.Id

    and k3.Deleted= 0

    and k3.PriceTypeCode= 'OilPrice'

	#油补

	left join tb_afcfeedetail k4

    on k4.WorkOrderId= t2.Id

	  and k4.Deleted= 0

	  and k4.PriceTypeCode= 'OilSubsidy'

	#公共交通费

	left join tb_afcfeedetail k5

    on k5.WorkOrderId= t2.Id

	  and k5.Deleted= 0

	  and k5.PriceTypeCode= 'InTrafficPrice'

	#打车费

	left join tb_afcfeedetail k6

    on k6.WorkOrderId= t2.Id

	  and k6.Deleted= 0

	  and k6.PriceTypeCode= 'TaxiFare'

	left join tb_afcfeedetail k7

    on k7.WorkOrderId= t2.Id

    and k7.Deleted= 0

    and k7.PriceTypeCode= 'Achievements'

	left join tb_afcfeedetail k8

    on k8.WorkOrderId= t2.Id

    and k8.Deleted= 0

    and k8.PriceTypeCode= 'ReceiveAmounts'

  #入账金额

  left join tb_afcfeedetail k9

    on k9.WorkOrderId= t2.Id

    and k9.Deleted= 0

    and k9.PriceTypeCode= 'RefundPrice'

	left join tb_afcfeeinfo as t10

	  on t10.WorkOrderId = t1.Id

	  and t10.Deleted = 0

	left join tb_afcworkfinancerecord m

	  on m.WorkOrderId = t2.Id

	  and m.Deleted = 0

	left join tb_afcworkfinanceinfo as t11

	  on t11.WorkOrderId = t1.Id

	  and t11.Deleted = 0

	left join tb_workaddressinfo as t12

	  on t12.WorkOrderId = t1.Id

	  and t12.Deleted = 0

	left join tb_workbussinessjsoninfo t13 on t1.id = t13.WorkOrderId and t13.Deleted = 0

	WHERE t1.Deleted = 0;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  Result AS IsSuccess,

  'AFCReportStatisticsDaily' AS Logger,

  'proc_AFCReportStatisticsDaily'    AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

  IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

  IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

  NOW() AS LogTime;



END

proc_AfcCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcCompletedWorkOrderById`(IN InWorkOrderId char(12), IN InWorkSatus smallint)
    COMMENT 'AFC根据id获取已完成工单明细'
BEGIN

    #Create: 2021年01月05日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_afcworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_afcworkorderdetail` (WorkOrderId, `OrderType`, `ContractNumber`, `SubjectName`, `SubjectCode`,

                                         `CustomerName`, `CustomerId`,

                                         `WorkStatus`, `AppCode`, `WorkStatusName`, `CreatePersonCode`,

                                         `CreatePersonName`, `CreatedTime`, `UserName`,

                                         `RequiredTime`, `CurrentPersonCode`, `CurrentPersonName`, `OverdueDays`,

                                         `IntervieweeType`, `IntervieweeName`,

                                         `Typee`, `ProCode`, `ProName`, `CityCode`, `CityName`, `AreaCode`, `AreaName`,

                                         `Address`, `IsNightVisit`, `TripMode`,

                                         `Achievements`, `NightVisitFee`, `TotalDistance`, `ReturnDistance`, `OilPrice`,

                                         `OilSubsidy`, `RoadBridgePrice`,

                                         `InTrafficPrice`, `TaxiFare`, `Accommodation`, `DifferenceFare`,

                                         `LimitationFee`, `ReportingQuality`, `OverduePrincipal`,

                                         `RefundPrice`, ReceiveAmounts, `UseTime`, `AddressType`, `IsFindPerson`,

                                         `IsOtherAccess`, `AddressInfoTopName`,

                                         `IsSecondLink`, `CustomerIsContact`, `LinkmanIsContact`, `IsFindCar`,

                                         `CarUseInfo`, `CustomerCommitmentDate`,

                                         `RiskLevel`, `NeedLawsuit`, `NeedSeizureCar`, `CaseTime`, `RetreatTime`,

                                         `FirstDistributeTime`,

                                         SetOutTime, EndVisitTime, CreatedRemark, ReimbursableDistance,

                                         AdjustReimbursableDistance, BelongingRegion,

                                         `SendPerson`, `SignTime`, `LastRecordTime`, `ServiceCode`, `ServiceName`,

                                         `Department`, `VisitorRole`, `FirstOrderAuditPerson`,

                                         `FirstOrderAuditTime`, PassOrderAuditTime, PassOrderAuditPerson,

                                         `NoAuditTimes`, `FirstAuditRejectRemark`, `RequestCloseTime`,

                                         `RequestClosePerson`, `CloseReasonName`, `ClosedAt`, `AcceptTime`,

                                         `CompleteTime`, Amount, AppointTime, ExpressFee, FollowFrequency,

                                         AbnormalRoadCondition, LastNegotiatorTime, ReportDeadline,

                                         OrderReturnedTypeName, AssistComplete, ResPrincipal, UnFollowDays,

                                         SignAddr, UnusualDistance, UnusualSign, AuditStatus,

                                         AccommodateSign,OptimalReturnDistance,OverdueGrade,FeeRemark,FindWho,

                                         AdjustReimReturnDistance,SecondLinkMan,SecondVisitStatus,ReturnCountReward,ReturnPriceReward,

                                         `CreatedAt`,

                                         `Deleted`)



    SELECT WorkOrderId,

           `OrderType`,

           `ContractNumber`,

           `SubjectName`,

           `SubjectCode`,

           `CustomerName`,

           `CustomerId`,

           `WorkStatus`,

           `AppCode`,

           `WorkStatusName`,

           `CreatePersonCode`,

           `CreatePersonName`,

           `CreatedTime`,

           `UserName`,

           `RequiredTime`,

           `CurrentPersonCode`,

           `CurrentPersonName`,

           `OverdueDays`,

           `IntervieweeType`,

           `IntervieweeName`,

           `Typee`,

           `ProCode`,

           `ProName`,

           `CityCode`,

           `CityName`,

           `AreaCode`,

           `AreaName`,

           `Address`,

           `IsNightVisit`,

           `TripMode`,

           `Achievements`,

           `NightVisitFee`,

           `TotalDistance`,

           `ReturnDistance`,

           `OilPrice`,

           `OilSubsidy`,

           `RoadBridgePrice`,

           `InTrafficPrice`,

           `TaxiFare`,

           `Accommodation`,

           `DifferenceFare`,

           `LimitationFee`,

           `ReportingQuality`,

           `OverduePrincipal`,

           `RefundPrice`,

           ReceiveAmounts,

           `UseTime`,

           `AddressType`,

           `IsFindPerson`,

           `IsOtherAccess`,

           `AddressInfoTopName`,

           `IsSecondLink`,

           `CustomerIsContact`,

           `LinkmanIsContact`,

           `IsFindCar`,

           `CarUseInfo`,

           `CustomerCommitmentDate`,

           `RiskLevel`,

           `NeedLawsuit`,

           `NeedSeizureCar`,

           `CaseTime`,

           `RetreatTime`,

           `FirstDistributeTime`,

           SetOutTime,

           EndVisitTime,

           CreatedRemark,

           ReimbursableDistance,

           AdjustReimbursableDistance,

           BelongingRegion,

           `SendPerson`,

           `SignTime`,

           `LastRecordTime`,

           `ServiceCode`,

           `ServiceName`,

           `Department`,

           `VisitorRole`,

           `FirstOrderAuditPerson`,

           `FirstOrderAuditTime`,

           PassOrderAuditTime,

           PassOrderAuditPerson,

           `NoAuditTimes`,

           `FirstAuditRejectRemark`,

           `RequestCloseTime`,

           `RequestClosePerson`,

           `CloseReasonName`,

           `ClosedAt`,

           `AcceptTime`,

           `CompleteTime`,

           Amount,

           AppointTime,

           ExpressFee,

           FollowFrequency,

           AbnormalRoadCondition,

           LastNegotiatorTime,

           ReportDeadline,

           OrderReturnedTypeName,

           AssistComplete,

           ResPrincipal,

           UnFollowDays,

           SignAddr,

           UnusualDistance,

           UnusualSign,

           AuditStatus,

           AccommodateSign,

           OptimalReturnDistance,

           OverdueGrade,

           FeeRemark,

           FindWho,

           AdjustReimReturnDistance,

           SecondLinkMan,

           SecondVisitStatus,

					 ReturnCountReward,

					 ReturnPriceReward,

					 

           `CreatedAt`,

           `Deleted`



    FROM (

             select row_number() OVER (PARTITION BY `a`.`Id` )                               AS `num`,

                    a.Id                                                                     AS WorkOrderId,

                    a.OrderType,

                    h.ContractNumber,

                    f.SubjectName                                                            AS SubjectName,

                    f.SubjectCode                                                            AS SubjectCode,

                    g.CustomerName,

                    g.CustomerId,

                    ifnull(InWorkSatus, `a`.`WorkStatus`)                                    AS `WorkStatus`,

                    `a`.`AppCode`                                                            AS `AppCode`,

                    fn_GetStatusNameByCode(ifnull(InWorkSatus, `a`.`WorkStatus`))            AS WorkStatusName,

                    a.CreatePersonCode,

                    a.CreatePersonName,

                    `a`.`CreatedAt`                                                          AS `CreatedTime`,

                    h.BorrowerName                                                           AS `UserName`,

                    `a`.`RequiredTime`,

                    fn_GetCurrentPersonInfo(a.Id, 1)                                         AS CurrentPersonCode,

                    fn_GetCurrentPersonInfo(a.Id, 2)                                         AS CurrentPersonName,



                    h.OverdueDays,

                    CASE g.IntervieweeType

                        WHEN '0' THEN '借款人'

                        WHEN '1' THEN '共借人'

                        WHEN '2' THEN '担保人'

                        WHEN '3' THEN '亲友'

                        WHEN '4' THEN '配偶'

                        WHEN '5' THEN '承租人'

                        WHEN '6' THEN '实际用车人'

                        when '7' then '申请人'

                        ELSE '' END                                                          AS IntervieweeType,

                    g.IntervieweeName,

                    (case `e`.`AddressTypeCode`

                         when '200' then '户籍地址'

                         when '201' then '居住地址'

                         when '202' then '单位地址'

                         when '203' then '其他地址(居住)'

                         when '204' then '其他地址(单位)'

                         when '205' then '房产地址'

                         when '206' then '其他地址'

                         else null end)                                                      AS `Typee`,

                    e.ProCode,

                    e.ProName,

                    e.CityCode,

                    e.CityName,

                    e.AreaCode,

                    e.AreaName,

                    e.Address,

                    IF(g.IsNightVisit = 0, '否', '是')                                         AS IsNightVisit,

                    IF(g.TripMode = 0, '自驾', '非自驾')                                          AS TripMode,

                    k1.FeeValue                                                              AS Achievements,

                    k2.FeeValue                                                              AS NightVisitFee,

                    g.TotalDistance,

                    g.ReturnDistance,

                    k3.FeeValue                                                              AS OilPrice,

                    k4.FeeValue                                                              AS OilSubsidy,

                    k5.FeeValue                                                              AS RoadBridgePrice,

                    k6.FeeValue                                                              AS InTrafficPrice,

                    k7.FeeValue                                                              AS TaxiFare,

                    k8.FeeValue                                                              AS Accommodation,

                    k9.FeeValue                                                              AS DifferenceFare,

                    k11.FeeValue                                                             AS LimitationFee,

                    k12.FeeValue                                                             AS ReportingQuality,

                    h.OverduePrincipal,

                    k13.FeeValue                                                             AS RefundPrice,

                    k14.FeeValue                                                             AS ReceiveAmounts,

                    #时长统计

                    CONCAT(

                            FLOOR(TIMESTAMPDIFF(SECOND, a.CreatedAt,

                                                fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                      ) / 86400), '天',

                            TIMESTAMPDIFF(HOUR, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 24, '时',

                            TIMESTAMPDIFF(MINUTE, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 60, '分'

                        )                                                                    AS UseTime,



                    CASE g.AddressType

                        WHEN '0' THEN '城市'

                        WHEN '1' THEN '农村'

                        WHEN '2' THEN '单位'

                        END                                                                  AS AddressType,



                    CASE m.RecordJson -> '$.IsFindPerson'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsFindPerson,



                    CASE m.RecordJson -> '$.IsOtherAccess'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsOtherAccess,





                    CASE m.RecordJson -> '$.AddressInfoTopCode'

                        WHEN '0' THEN '地址存在且有效'

                        WHEN '1' THEN '地址存在但无效'

                        WHEN '2' THEN '地址虚假/不存在'

                        ELSE '' END                                                          AS AddressInfoTopName,



                    #是否复联

                    #现场拨打电话情况,客户/联系人有一种情况为“可联”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                    #上汽客户逻辑:现场拨打电话情况,客户/联系人有一个联系结果为“接通”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                        IF(

                    (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult') IS NOT NULL),

                    (IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),'是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),'是',

                     IF(1 member of (JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess')),'是','否')))

                    ),

                    (IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 0 or CAST(m.RecordJson->>'$.LinkmanIsContact' AS CHAR CHARSET utf8mb4)='NULL'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.CustomerIsContact') = 0),

                     IF((JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess') = 0), '否', '是'), '是'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 1), '是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactCommonList[*].ContactResult'))),'是',NULL))))) AS IsSecondLink,

                    #复联人

                    #新增字段,取值为关系类型(①现场拨打电话情况中选择“可联”的关系类型,含客户、联系人-关系类型;②是否新增有效联系方式选择“是”的关系类型)

                    # 若存在多个关系类型,则用【、】隔开,关系类型为【亲属】时,需拼接备注信息

                    fn_afcgetsecondlinkrelationbyid(a.Id,a.CustomerName) as SecondLinkMan,

                    m.RecordJson -> '$.CustomerIsContact'                                    AS CustomerIsContact,

                    m.RecordJson -> '$.LinkmanIsContact'                                     AS LinkmanIsContact,



                    CASE json_extract(`m`.`RecordJson`, '$.IsFindCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `IsFindCar`,



                    IF(cast(json_extract(`m`.`RecordJson`, '$.CarUseInfo') as char charset utf8mb4) = 'null', NULL,

                       json_unquote(json_extract(`m`.`RecordJson`, '$.CarUseInfo')))         AS `CarUseInfo`,

                    if((cast(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10) as char charset utf8mb4) <>

                        'null'),

                       CONVERT(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10), date),

                       NULL)                                                                 AS `CustomerCommitmentDate`,



                    CASE m.RecordJson -> '$.RiskLevel'

                        WHEN '0' THEN '低'

                        WHEN '1' THEN '中'

                        WHEN '2' THEN '高'

                        END                                                                  AS RiskLevel,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedLawsuit')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedLawsuit`,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedSeizureCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedSeizureCar`,



                    h.CaseTime,

                    h.RetreatTime,

                    g.FirstDistributeTime,

                    fn_GetAFCSetOutTimeById(`a`.`Id`)                                        AS SetOutTime,

                    fn_GetAFCEndVisitTimeById(`a`.`Id`)                                      AS EndVisitTime,

                    a.Remark                                                                 AS CreatedRemark,

                    g.ReimbursableDistance                                                   AS ReimbursableDistance,

                    g.AdjustReimbursableDistance                                             AS AdjustReimbursableDistance,

                    h.UserProName                                                            AS BelongingRegion,



                    `fn_GetAfcDispatcherName`(`a`.`Id`)                                      AS SendPerson,

                    n.SignTime,

                    #最新备案时间

                    fn_GetAFCLastRecordTimeById(a.Id)                                        AS LastRecordTime,

                    i.ServiceCode,

                    i.ServiceName,

                    m.Department,

                    m.VisitorRole,

                    #质检 见壹好车服质检报表

                    `fn_GetServiceAuditFirstPersonById`(`a`.`Id`)                            AS `FirstOrderAuditPerson`,

                    `fn_GetServiceAuditFirstTimeById`(`a`.`Id`)                              AS `FirstOrderAuditTime`,

                    fn_GetAFCPassAuditTimeById(`a`.`Id`)                                     AS PassOrderAuditTime,

                    fn_GetAFCPassAuditPersonNameById(`a`.`Id`)                               AS PassOrderAuditPerson,

                    #质检不通过次数

                    fn_GetAFCServiceAuditTimesById(`a`.`Id`)                                 AS NoAuditTimes,

                    `fn_GetServiceAuditRejectReasonById`(`a`.`Id`)                           AS `FirstAuditRejectRemark`,

                    fn_GetRequestCloseTimeById(`a`.`Id`)                                     AS RequestCloseTime,

                    o1.ClosePersonName                                                       AS `RequestClosePerson`,

                    #关闭原因

                    IF(o1.CloseReasonCode = 'CloseReason8101-00', o1.Remark,

                       o1.CloseReasonName)                                                   AS CloseReasonName,

                    o1.ClosedAt,

                    fn_GetAFCAcceptTimeById(a.Id)                                            AS AcceptTime,

                    `fn_GetWorkFlowTimeInfo`(`a`.`Id`, '结束')                                 AS `CompleteTime`,

                    l.Amount,

                    p.AppointTime                          AppointTime,

                    q.FeeValue                                                               as ExpressFee,

                    case p.v_FollowFrequency

                        when 0 then '低频跟进'

                        when 1

                            then '高频跟进' end                                                  as FollowFrequency,

                    if(fn_GetWorkFlowTimeInfo(a.id, '路况异常签到') is null, '否', '是')             as AbnormalRoadCondition,

                    p.v_LastNegotiatorTime                                                   as LastNegotiatorTime,

                    p.v_ReportDeadline                                                       AS ReportDeadline,

                    fn_GetAfcReturnTypeByCode(p.BussinessJson ->> '$.OrderReturnedTypeCode') as OrderReturnedTypeName,

                    CASE P.v_AfcCompleteType

                        WHEN 1 THEN '是'

                        when 3 then '是'

                        when 2 then '否'

                        end                                                                  as AssistComplete,

                    h.ResPrincipal                                                           as ResPrincipal,

                    p.v_UnFollowDays                                                         as UnFollowDays,

                    n.SignAddr                                                               as SignAddr,

                    p.BussinessJson ->> '$.UnusualDistance'                                  as UnusualDistance,

                    p.BussinessJson ->> '$.UnusualSign'                                      as UnusualSign,

                    case fn_GetFeeTypeById(a.id,'住宿费',ifnull(a.ServiceProviderCode,'1001'),2)

                        when 0 then null

                        when 1 then '待审核'

                        when 2 then '已通过'

                        when 3 then '未通过'

                        else null end                                                        as AuditStatus,

                    s.SignTime                                                               as AccommodateSign,

                    g.OptimalReturnDistance ,

                    BussinessJson->>'$.overdueGrade' as OverdueGrade,

           l.Remark as FeeRemark,

                    if(m.RecordJson->>'$.IsFindPerson'=1,m.RecordJson->>'$.FindWho',null) as FindWho ,

                    g.AdjustReimReturnDistance,

                    case P.V_SecondVisitStatus when 0 then '待走访'

                        when 1 then '走访中'

                        when 2 then '走访完成'

                        when 3 then '走访拒绝' end

                        AS SecondVisitStatus,

					k15.FeeValue   AS ReturnCountReward,

                    k16.FeeValue                                                             AS ReturnPriceReward,

                    NOW()                                                                    AS CreatedAt,

                    0                                                                        AS Deleted

             from `tb_workorderinfo` `a`

                      inner join tb_workaddressinfo e

                                 on e.WorkOrderId = a.Id

                                     and e.Deleted = 0

                      left join tb_workservicesubject f

                                on f.WorkOrderId = a.Id

                                    and f.Deleted = 0

                      inner join tb_afcworkorderinfo g

                                 on g.Id = a.Id

                                     and g.Deleted = 0

                      left join tb_afcworkfinanceinfo h

                                on h.WorkOrderId = a.Id

                      left join tb_workserviceinfo i

                                on i.WorkOrderId = a.Id

                                    and i.Deleted = 0

                      left join `tb_afcfeeinfo` `l` on `l`.`WorkOrderId` = `a`.`Id`

                 and `l`.`Deleted` = 0

                      left join `tb_afcfeedetail` `k1` on `k1`.`WorkOrderId` = `a`.`Id`

                 and `k1`.`Deleted` = 0

                 and `k1`.`PriceTypeCode` = 'Achievements'

                      left join `tb_afcfeedetail` `k2` on `k2`.`WorkOrderId` = `a`.`Id`

                 and `k2`.`Deleted` = 0

                 and `k2`.`PriceTypeCode` = 'NightVisitFee'

                      left join `tb_afcfeedetail` `k3` on `k3`.`WorkOrderId` = `a`.`Id`

                 and `k3`.`Deleted` = 0

                 and `k3`.`PriceTypeCode` = 'OilPrice'

                      left join `tb_afcfeedetail` `k4` on `k4`.`WorkOrderId` = `a`.`Id`

                 and `k4`.`Deleted` = 0

                 and `k4`.`PriceTypeCode` = 'OilSubsidy'

                      left join `tb_afcfeedetail` `k5` on `k5`.`WorkOrderId` = `a`.`Id`

                 and `k5`.`Deleted` = 0

                 and `k5`.`PriceTypeCode` = 'RoadBridgePrice'

                      left join `tb_afcfeedetail` `k6` on `k6`.`WorkOrderId` = `a`.`Id`

                 and `k6`.`Deleted` = 0

                 and `k6`.`PriceTypeCode` = 'InTrafficPrice'

                      left join `tb_afcfeedetail` `k7` on `k7`.`WorkOrderId` = `a`.`Id`

                 and `k7`.`Deleted` = 0

                 and `k7`.`PriceTypeCode` = 'TaxiFare'

                      left join `tb_afcfeedetail` `k8` on `k8`.`WorkOrderId` = `a`.`Id`

                 and `k8`.`Deleted` = 0

                 and `k8`.`PriceTypeCode` = 'Accommodation'

                      left join `tb_afcfeedetail` `k9` on `k9`.`WorkOrderId` = `a`.`Id`

                 and `k9`.`Deleted` = 0

                 and `k9`.`PriceTypeCode` = 'DifferenceFare'

                      left join `tb_afcfeedetail` `k11` on `k11`.`WorkOrderId` = `a`.`Id`

                 and `k11`.`Deleted` = 0

                 and `k11`.`PriceTypeCode` = 'LimitationFee'

                      left join `tb_afcfeedetail` `k12` on `k12`.`WorkOrderId` = `a`.`Id`

                 and `k12`.`Deleted` = 0

                 and `k12`.`PriceTypeCode` = 'ReportingQuality'

                      left join `tb_afcfeedetail` `k13` on `k13`.`WorkOrderId` = `a`.`Id`

                 and `k13`.`Deleted` = 0

                 and `k13`.`PriceTypeCode` = 'RefundPrice'

                      left join `tb_afcfeedetail` `k14` on `k14`.`WorkOrderId` = `a`.`Id`

                 and `k14`.`Deleted` = 0

                 and `k14`.`PriceTypeCode` = 'receiveAmounts'

								 

								 

								        left join `tb_afcfeedetail` `k15` on `k15`.`WorkOrderId` = `a`.`Id`

                 and `k15`.`Deleted` = 0

                 and `k15`.`PriceTypeCode` = 'ReturnCountReward'

								 

								        left join `tb_afcfeedetail` `k16` on `k16`.`WorkOrderId` = `a`.`Id`

                 and `k16`.`Deleted` = 0

                 and `k16`.`PriceTypeCode` = 'ReturnPriceReward'

								 

								 

								 

								 

								 

								 

								 

                      left join tb_afcworkfinancerecord m

                                on m.WorkOrderId = a.Id

                                    and m.Deleted = 0

                      left join tb_worksignininfo n

                                on n.WorkOrderId = a.Id

                                    and n.Deleted = 0

                                    and n.SignType = 2

                      left join tb_workorderstatus o1

                                on o1.WorkOrderId = a.Id

                                    and o1.Deleted = 0

                                    and o1.TypeStatus = 0

                      inner join tb_workorderstatus o

                                 on o.WorkOrderId = a.Id

                                     and o.Deleted = 0

                      left join tb_workbussinessjsoninfo p on a.id = p.workorderid and p.deleted = 0

                      left join tb_afcfeedetail q

                                on a.id = q.WorkOrderId and q.Deleted = 0 and q.PriceTypeCode = 'ExpressFee'

                      left join serviceordercenter.tb_worksignininfo s

                                on a.id = s.WorkOrderId and s.Deleted = 0 and s.SignType = 5

             where `a`.`Deleted` = 0

               AND a.Id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);



    #20231205张珂珂需求【上汽通用汽车金融有限责任公司(清收)】、【上汽通用汽车金融有限责任公司】这俩客户下工单的质检通过时间 取值为工单完成时间

    update rp_afcworkorderdetail a

    set a.PassOrderAuditTime= a.CompleteTime,

        a.FirstOrderAuditTime= a.CompleteTime,

        a.PassOrderAuditPerson='系统确认',

        a.FirstOrderAuditPerson='系统确认'

    where `CustomerName`  in('上汽通用汽车金融有限责任公司(清收)','上汽通用汽车金融有限责任公司')

      and PassOrderAuditTime is null

    and a.WorkOrderId=InWorkOrderId;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('AfcCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_AfcCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;



END

proc_WorkflowJsonById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonById`(InWorkOrderId char(12))
    SQL SECURITY INVOKER
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



DROP TABLE IF EXISTS tm_workjson;

CREATE TEMPORARY TABLE tm_workjson(

  WorkOrderId CHAR(12) PRIMARY KEY,

  Stepjson Json

);





#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

  WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)

    ) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



IF NOT EXISTS(SELECT 1 FROM tm_workjson) THEN

INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



END IF;



IF EXISTS(SELECT 1 FROM tm_workjson)

THEN

DELETE A FROM serviceordercenter.tb_workflowjsoninfo A WHERE A.WorkOrderId=InWorkOrderId;

INSERT INTO serviceordercenter.tb_workflowjsoninfo(WorkOrderId,Stepjson,SourceMode)

SELECT WorkOrderId,Stepjson,2

FROM tm_workjson;

END IF;



DROP TABLE IF EXISTS tm_workjson;



#恢复隔离级别

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



#日志记录生成模块

INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

SELECT 1 AS IsSuccess,

   'WorkFlowJsonService' AS Logger,

   'proc_WorkflowJsonById' AS ProcedureName,

   TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

   sys_ErrCode AS ErrCode,

   sys_ErrMessage AS ErrMessage,

   NOW() AS LogTime;



END

proc_WorkflowJsonCheck

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00')

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里

/*

SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;

*/



#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_HomeUserArea

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeUserArea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeUserArea`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_人员覆盖区域统计(每日)
#CreatedAt: 2023-08-18 10:34:43
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();
	
	#开启事务
	START TRANSACTION;
		
	# 删除7天前的数据
	# DELETE FROM home_userarea WHERE CheckDate '00000'
	THEN
		SET Result=1;
		ROLLBACK;
	ELSE
		SET Result=0;
		COMMIT;
	END IF;  

  	#返回结果
  	SELECT Result AS ErType,sys_ErrMessage AS ErMessage;

  	#日志记录生成模块
  	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)
  	SELECT Result AS IsSuccess,
           'HomeReport' AS Logger,
           'proc_HomeUserArea' AS ProcedureName,
           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,
           sys_ErrCode AS ErrCode,
  	       sys_ErrMessage AS ErrMessage,
           NOW() AS LogTime;
		
END

proc_ChpCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_ChpCompletedWorkOrderById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_ChpCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT 'Chp根据id获取已完成工单明细'
BEGIN

    #Create: 2023年03月29日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_chpworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_chpworkorderdetail` (WorkOrderId, AppCode, OrderType, SubjectNameSummary, CustomerName,

                                         CustStoreName, CustSettleName, LinkMan, LinkTel,

                                         ProName, CityName, AreaName, InstallAddress, Remark, FirstConcatRole,

                                         chpCarUserName, chpCarUserTel, chpCarVinNumber,

                                         IsWithPile, IsSelfBuiltHouse, CarParkin, ProtectionBox, InstallType,

                                         GetElectricityType, Schedule, ElectricityMetersType,

                                         PowerPointLocation, WechatNumber, chpWXAddProgress, FirstContactRemark,

                                         WorkStatusName, CurrentPerson, SubmmitTime, RequiredTime,

                                         chpNextFollowTime, LastAppointStatus, LastFailAppointConcat,

                                         AllFailAppointConcat, SurveyTime, CompleteTime, ClosedAt, AuditRejectRemark,

                                         AuditRejectNum, LastAuditRejectTime,AuditTime, LastSurveyAuditCode, LastSurveyAuditName,

                                         LastInstallAuditCode, LastInstallAuditName, IsAddition, AdditionFeeSettleRoad,

                                         AdditionFeePayTypeName, AdditionFeeChangeRemark, AdditionFeeDetail,

                                         AdditionFeePrice, AdditionFeePaySource, AdditionFeeOfflinePayer,

                                         AdditionFeePayTime, ServiceGoodsName, ServiceGoodsPrice, Power,

                                         FirstPartySettleLength, PackageLength, BrandName, chpBrandInfoURL,

                                         ProjectWarrantyPeriod, SurveyName, Surveycode, InstallName, InstallCode,

                                         Distance, InstallAscription, FirstRecordTime,LastRecordTime, EmployeeAttributes, SurveyMethod,

                                         IndividualReason,

                                         SurveyResult, ResultReason, SurveyRemark, Seller, GoodsName, MaterialPrice,

                                         GoodsSource, MaterialNo, MaterialType, EscrowMaterialType, EscrowMaterialNo,

                                         PileWarrantyPeriod, WarehouseName, chpIsSelfWiring,

                                         HardWire, FlexibleCord, Drivepipe, LeakageInsurance,

                                         AirSwitchBox, ChargingPileColumn, chpInstallRemark, chpNextFollow, CreatedAt,

                                         FirstConcatPersonCode, FirstConcatPersonName, FirstConcatTime,

                                         ChpLineActualUsage,

                                         chpGoodsPackageSubsidyPrice, LastApplyReason, chpCarModel, chpProModel,

                                         chpChargerNo,

                                         chpOriginalInstallPerson, chpFactoryBrand, chpProblemDescription, chpFaulttime,

                                         chpFaultClass, chpSuggestedSolution, chpWarrantyStatus, chpActualSolutionName,

                                         chpIfCharge, chpAfterSaleRemark, chpLogisticsNum, chpShippingWarehouse,

                                         chpWarehouseMaterials,chpMaterialSN,chpWorkerSettlePrice,chpWorkerSettlementMethod,chpWorkerFeeRemark,

                                         chpInstallConditionDate,chpPileInventoryResults,chpColumnInventoryResults,

                                         AdditionFeeCommissionRatio,AllSubsidy,InstallPriPileSubsidy,AfterSalePriPileSubsidy,

                                         ChargingPileSubsidy,LeakageInsuranceSubsidy,GalvanizedPipeSubsidy,

                                         AdditionSubsidy,LineSubsidy,RemoteSubsidy,CarSubsidy,BonusSubsidy,

                                         DifferenceSubsidy,ComplaintDeduction,DifferenceDeduction,chpPilesNum, chpGunsNum,chpParkSpaceNum,

                                         DispatchTime,CustomerAuditApprovalTime,chpOrderSource,CurrentPersonCode)

    SELECT WorkOrderId,

           AppCode,

           OrderType,

           SubjectNameSummary,

           CustomerName,

           CustStoreName,

           CustSettleName,

           LinkMan,

           LinkTel,

           ProName,

           CityName,

           AreaName,

           InstallAddress,

           Remark,

           FirstConcatRole,

           chpCarUserName,

           chpCarUserTel,

           chpCarVinNumber,

           IsWithPile,

           IsSelfBuiltHouse,

           CarParkin,

           ProtectionBox,

           InstallType,

           GetElectricityType,

           Schedule,

           ElectricityMetersType,

           PowerPointLocation,

           WechatNumber,

           chpWXAddProgress,

           FirstContactRemark,

           WorkStatusName,

           CurrentPerson,

           SubmmitTime,

           RequiredTime,

           chpNextFollowTime,

           LastAppointStatus,

           LastFailAppointConcat,

           AllFailAppointConcat,

           SurveyTime,

           CompleteTime,

           ClosedAt,

           AuditRejectRemark,

           AuditRejectNum,

           LastAuditRejectTime,

           AuditTime,

           LastSurveyAuditCode,

           LastSurveyAuditName,

           LastInstallAuditCode,

           LastInstallAuditName,

           IsAddition,

           AdditionFeeSettleRoad,

           AdditionFeePayTypeName,

           AdditionFeeChangeRemark,

           AdditionFeeDetail,

           AdditionFeePrice,

           AdditionFeePaySource,

           AdditionFeeOfflinePayer,

           AdditionFeePayTime,

           ServiceGoodsName,

           ServiceGoodsPrice,

           Power,

           FirstPartySettleLength,

           PackageLength,

           BrandName,

           chpBrandInfoURL,

           ProjectWarrantyPeriod,

           SurveyName,

           Surveycode,

           InstallName,

           InstallCode,

           Distance,

           InstallAscription,

           FirstRecordTime,

           LastRecordTime,

           EmployeeAttributes,

           SurveyMethod,

           IndividualReason,

           SurveyResult,

           ResultReason,

           SurveyRemark,

           Seller,

           GoodsName,

           MaterialPrice,

           GoodsSource,

           MaterialNo,

           MaterialType,

           EscrowMaterialType,

           EscrowMaterialNo,

           PileWarrantyPeriod,

           WarehouseName,

           chpIsSelfWiring,

           HardWire,

           FlexibleCord,

           Drivepipe,

           LeakageInsurance,

           AirSwitchBox,

           ChargingPileColumn,

           chpInstallRemark,

           chpNextFollow,

           CreatedAt,

           FirstConcatPersonCode,

           FirstConcatPersonName,

           FirstConcatTime,

           ChpLineActualUsage,

           chpGoodsPackageSubsidyPrice,

           LastApplyReason,

           chpCarModel,

           chpProModel,

           chpChargerNo,

           chpOriginalInstallPerson,

           chpFactoryBrand,

           chpProblemDescription,

           chpFaulttime,

           chpFaultClass,

           chpSuggestedSolution,

           chpWarrantyStatus,

           chpActualSolutionName,

           chpIfCharge,

           chpAfterSaleRemark,

           chpLogisticsNum,

           chpShippingWarehouse,

           chpWarehouseMaterials,

           chpMaterialSN,

           chpWorkerSettlePrice,

           chpWorkerSettlementMethod,

           chpWorkerFeeRemark,

           chpInstallConditionDate,

           chpPileInventoryResults,

           chpColumnInventoryResults,

           AdditionFeeCommissionRatio,

           AllSubsidy,

           InstallPriPileSubsidy,

           AfterSalePriPileSubsidy,

           #UnderreportingSubsidy,

           ChargingPileSubsidy,

           LeakageInsuranceSubsidy,

           GalvanizedPipeSubsidy,

           AdditionSubsidy,

           LineSubsidy,

           RemoteSubsidy,

           CarSubsidy,

           BonusSubsidy,

           DifferenceSubsidy,

           ComplaintDeduction,

           DifferenceDeduction,#差异扣除

       chpPilesNum, #(充电桩)桩数量

       chpGunsNum, #(充电桩)枪数量

       chpParkSpaceNum, #(充电桩)车位数量

        DispatchTime,

		    CustomerAuditApprovalTime,

				chpOrderSource,

				CurrentPersonCode

    FROM (select  row_number() over (partition by a.id)                                               num,

                 a.id                                                                             AS WorkOrderId,

                 a.AppCode,

                 fn_GetOrderTypeByCode(a.OrderType)                                               as OrderType,

                 b.SubjectNameSummary,

                 a.CustomerName,

                 a.CustStoreName,

                 a.CustSettleName,

                 a.LinkMan,

                 a.LinkTel,

                 a.ProName,

                 a.CityName,

                 a.AreaName,

                 a.InstallAddress,

                 a.Remark,

                 case v_chpFirstContactRole when 1 then '运营' when 2 then '服务人员' end               as FirstConcatRole,

                 c.v_chpCarUserName                                                               as chpCarUserName,

                 c.v_chpCarUserTel                                                                as chpCarUserTel,

                 c.BussinessJson ->> '$.chpCarVinNumber'                                          as chpCarVinNumber,#车架号

                 c.BussinessJson ->> '$.chpFirstContact.IsWithPile'                               as IsWithPile, #带桩上门

                 c.BussinessJson ->> '$.chpSurveyInfo.IsSelfBuiltHouse'                           as IsSelfBuiltHouse, #是否自建房

                 c.BussinessJson ->> '$.chpSurveyInfo.CarParkin'                                  as CarParkin, #车位

                 c.BussinessJson ->> '$.chpSurveyInfo.ProtectionBox'                              as ProtectionBox,#保护箱

                 c.BussinessJson ->> '$.chpSurveyInfo.InstallType'                                as InstallType,#安装方式

                 c.BussinessJson ->> '$.chpSurveyInfo.GetElectricityType'                         as GetElectricityType,#取电方式

                 c.BussinessJson ->> '$.chpSurveyInfo.Schedule'                                   as Schedule,#立表进度

                 c.BussinessJson ->> '$.chpSurveyInfo.ElectricityMetersType'                      as ElectricityMetersType,#电表类型

                 c.BussinessJson ->> '$.chpSurveyInfo.PowerPointLocation'                         as PowerPointLocation,#取电点位置

                 c.BussinessJson ->> '$.chpFirstContact.WechatNumber'                             as WechatNumber,#车主微信号/群名

                 c.BussinessJson ->> '$.chpWXAddProgress'                                         as chpWXAddProgress,#车主微信添加进度 已添加/未通过

                 c.BussinessJson ->> '$.chpFirstContact.Remark'                                   as FirstContactRemark,#首联备注



                 fn_GetStatusNameByCode(a.WorkStatus)                                             as WorkStatusName,

                 (select OperName

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPerson, #当前处理人 取工单待办人,存在多个待办人不展示;

									  (select OperCode

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPersonCode,#当前处理人编号取工单待办人,存在多个待办人不展示;

                 (select max(b1.DoneAt)

                  from workflowruntimeitems a1,

                       workflowruntimesteps b1

                  where a1.id = b1.RuntimeItemId

                    and a1.Deleted = 0

                    and b1.Deleted = 0

                    and b1.Name = '开始'

                    and b1.DoneAt is not null

                    and a.id = a1.TargetEntityId

                  group by a1.TargetEntityId)                                                     as SubmmitTime, #工单提交时间

                 a.RequiredTime                                                                   as RequiredTime,

                 c.v_chpNextFollowTime                                        as chpNextFollowTime,#下次跟进时间

                 (

                     SELECT CASE AppointStatus

                                WHEN 0 THEN ''

                                WHEN 1 THEN '改约'

                                WHEN 2 THEN '等通知'

                                WHEN 3 THEN '请求关闭'

                                WHEN 4 THEN '客服异常反馈记录'

                                WHEN 5 THEN '请求关闭(客户审核)'

                                WHEN 6 THEN '需再次上门'

                                WHEN 7 THEN '智能改约'

                                WHEN 8 THEN '改约'

                                WHEN 9 THEN '等通知'

                                WHEN 10 THEN '请求关闭'

                                WHEN 11 THEN '跟进记录'

                                END

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND AppointSource IN (1, 3) #一线异常反馈记录+智能改约

                       AND `Deleted` = 0

                       AND AppointStatus in (3, 11)

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastAppointStatus, #最新异常反馈类型 等通知/跟进记录,如果没有进行过异常反馈,展示为空,取最后一次的异常反馈结果

                 (

                     SELECT CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                   IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                      CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                   IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                   IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'), ''))

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND `Deleted` = 0

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastFailAppointConcat,#最新异常反馈详情 取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间

                 (

                     SELECT group_concat(CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                                IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                                   CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                                IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                                IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'),

                                                   ''))

                                         order by CreatedAt desc separator '

')

                     FROM `tb_appointment`

                     WHERE `Deleted` = 0

                       #AND AppointSource IN (1,3) #是否要剔除 #呼叫中心+智能改约

                       AND `WorkOrderId` = a.id

                     group by WorkOrderId

                 )                                                                                as AllFailAppointConcat, #异常反馈记录 按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间

                 d.SurveyTime                                                                     as SurveyTime,#勘测完成时间

                 e.CompleteTime                                                                   as CompleteTime,#安装完成时间

                 (select ClosedAt

                  from tb_workorderstatus w1

                  where a.id = w1.WorkOrderId

                    and w1.Deleted = 0)                                                           as ClosedAt,#关闭时间

                 (SELECT group_concat(ifnull(w1.Remark, '') order by w1.InsertTime desc separator ';')

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectRemark, #质检不通过备注 【勘测、安装】每次不通过的备注都放一起。

                 (SELECT count(1)

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectNum, #质检驳回次数 勘测驳回+安装驳回的次数

                 (SELECT DoneAt

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  order by DoneAt desc limit 1)                                                        as LastAuditRejectTime,#最新质检驳回时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('质检工单(安装)','质检工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime desc

                  limit 1)                                                                        as AuditTime, #安装质检通过时间

                (select `w2`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w2`

                where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)

                      )

                order by `w2`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditCode`,  # 最新勘测质检人工号

                (select `w3`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w3`

                where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)

                       )

                order by `w3`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditName`,  # 最新勘测质检人姓名

                (select `w4`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w4`

                where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)

                       )

                order by `w4`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditCode`,  # 最新安装质检人工号

                (select `w5`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w5`

                where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)

                       )

                order by `w5`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditName`,  # 最新安装质检人姓名

                case when g2.id is not null then '是' else '否' end                                as IsAddition, #是否存在增项

                 gg.ExtraJson ->> '$.SettleRoad'                                                  as AdditionFeeSettleRoad,#增项结算路径

                 #g2.ExtraJson ->> '$.SettleType'                                                             as AdditionFeeSettleType, #增项结算方

                 f1.PayTypeName                                                                   as AdditionFeePayTypeName,#结算方式

                 (select r2.Remark

                  from tb_remarkinfo r2

                  where Type = 13

                    and r2.WorkOrderId = a.id

                    and r2.Deleted = 0)                                                           as AdditionFeeChangeRemark,#增项结算修改原因

                 cast(replace(g2.ExtraJson ->> '$.AdditionFeeDetail', 'null', '') as char)        as AdditionFeeDetail,#增项明细

                 g2.Price                                                                         as AdditionFeePrice,#增项费(元)

                 case g2.PaySource

                     when 1 then '扫码支付'

                     when 2 then '线下转账'#'打款凭证'

                     when 3 then '银行转账'

                     end                                                                          as AdditionFeePaySource,#付款方式

                 g2.OfflinePayer                                                                  as AdditionFeeOfflinePayer,#打款人

                 g2.PayTime                                                                       as AdditionFeePayTime,#打款时间

                 gg.SaleName                                                                      as ServiceGoodsName, #安装服务商品

                 gg.GoodsPrice                                                                    as ServiceGoodsPrice,#服务商品价格 订单中心服务商品价格;生成订单时获取该价格 #待定、开发是否拿到

                 gg.ExtraJson ->> '$.Power'                                                       as Power,#功率

                 gg.ExtraJson ->> '$.FirstPartySettleLength'                                      as FirstPartySettleLength,#甲方结算套餐长度

                 gg.ExtraJson ->> '$.PackageLength'                                               as PackageLength,#车企套餐长度

                 gg.BrandName                                                                     as BrandName, #品牌

                 gg.ExtraJson ->> '$.chpBrandInfoURL'                                             as chpBrandInfoURL,#品牌资料

                 gg.ExtraJson ->> '$.ProjectWarrantyPeriod'                                       as ProjectWarrantyPeriod,#工程质保期(年)

                 #g.ExtraJson ->> '$.PackageCableSpecifications'                                              as PackageCableSpecifications, #套餐线缆规格

                 d.SurveyName                                                                     as SurveyName,#勘测人姓名

                 d.Surveycode                                                                     as Surveycode,#勘测人账号

                 e.ServiceName                                                                    as InstallName,# 安装人姓名

                 e.ServiceCode                                                                    as InstallCode,#安装人账号

                 d.Distance                                                                       as Distance, #单程服务距离(km)

                 (select case f1.Ascription #0外勤、1内勤、2优工、3特工-外访、4特工-催收\

                             when 0 then '外勤'

                             when 1 then '内勤'

                             when 2 then '优工'

                             when 3 then '特工-外访'

                             when 4 then '特工-催收'

                             end

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as InstallAscription, # 安装人员属性

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime asc limit 1)                                                     as FirstRecordTime,#首次提交安装结果时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime desc limit 1)                                                     as LastRecordTime,#最新一次提交安装结果时间

                 (select f1.v_EmployeeAttributes

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as EmployeeAttributes, # 安装人员属性	#key没定

                 case d.SurveyMethod

                     when 1 then '单独上门勘测'

                     when 2 then '视频等远程勘测'

                     when 3 then '勘测+安装一起完成'

                     end                                                                          as SurveyMethod,# 勘测方式

                 d.IndividualReason                                                               as IndividualReason,#单独上门原因

                 case d.SurveyResult when 1 then '是' when 0 then '否' end                          as SurveyResult,# 是否继续安装

                 d.ResultReason                                                                   as ResultReason,#不安装原因

                 c.BussinessJson ->> '$.chpSurveyInfo.Remark'                                     as SurveyRemark,#勘测施工备注

                 (case when `g`.`Seller`=0 then '中瑞' when `g`.`Seller`=1 then '非中瑞' when `g`.`Seller`is null and a.ordertype='9856' then '非中瑞' end) as Seller,#充电桩销售方

                 g.GoodsName,#桩商品

                 h.MaterialPrice                                                                  as MaterialPrice,#桩价格

                 case g.GoodsSource

                     when 0 then '分仓货品'

                     when 1

                         then '批发货品' end                                                          as GoodsSource,#桩来源

                 case when g.Seller = 0 then h.MaterialNo end                                     as MaterialNo,#中瑞桩编码

                 g.ExtraJson ->> '$.ChargerType'                                                  as MaterialType,#充电桩类型

                 case when g.Seller = 1 then h.MaterialName end                                   as EscrowMaterialType,#代管桩物料

                 case when g.Seller = 1 then h.MaterialNo end                                     as EscrowMaterialNo,#代管桩编码

                 if(g.ExtraJson ->> '$.PileWarrantyPeriod'='null',null , g.ExtraJson ->> '$.PileWarrantyPeriod' )                   as PileWarrantyPeriod,#电桩质保期(年)

                 h.WarehouseName                                                                     WarehouseName,#充电桩出货仓库

                 case c.BussinessJson ->> '$.chpIsSelfWiring' when 1 then '是' when 0 then '否' end as chpIsSelfWiring,#车主是否自布线



                 fn_GetChpAccessoriesInfo('电缆硬线', a.Id)                                              HardWire,# 电缆硬线 出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注

                 fn_GetChpAccessoriesInfo('电缆软线', a.Id)                                              FlexibleCord,# 电缆软线

                 fn_GetChpAccessoriesInfo('套管', a.Id)                                                Drivepipe,# 套管

                 fn_GetChpAccessoriesInfo('漏保', a.Id)                                                LeakageInsurance,#漏保

                 fn_GetChpAccessoriesInfo('空开盒', a.Id)                                               AirSwitchBox,#空开盒

                 fn_GetChpAccessoriesInfo('充电桩立柱', a.Id)                                             ChargingPileColumn,# #充电桩立柱

                 c.BussinessJson ->> '$.chpInstallRemark'                                         as chpInstallRemark, # 安装施工备注

                 c.BussinessJson ->> '$.chpNextFollow'                                            as chpNextFollow, # 安装后跟进记录

                 a.CreatedAt                                                                      as CreatedAt,#建单时间

                 (SELECT w1.OperCode

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonCode,

                 (SELECT w1.OperName

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonName,

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatTime,

        c.v_ChpLineActualUsage as ChpLineActualUsage, #线缆实际用量(电缆硬线+电缆软线实际用量)

        c.BussinessJson ->> '$.chpGoodsPackageSubsidyPrice'  as chpGoodsPackageSubsidyPrice,

        ac.ApplyReason      AS `LastApplyReason`,

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpCarModel'))              AS `chpCarModel`,#车型

#施工完成时间(提交结果中录入的时间:serviceinfo表completetime)

#质检通过时间(对标安装质检通过时间)

#服务商品(跟安装服务商品应该是要存一起的,沿用原逻辑存)//已有

#施工人员姓名	施工人员账号	施工人员归属	(从工作流拿待提交处理结果人/tb_workserviceinfo表的服务人员)//已有

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpProModel'))              AS `chpProModel`,#产品型号

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpChargerNo'))             AS `chpChargerNo`,#桩编号

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpOriginalInstallPerson'))      AS `chpOriginalInstallPerson`,#原施工人

                 `c`.`BussinessJson` ->> '$.chpFactoryBrand'                                   as chpFactoryBrand,#主机厂品牌

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpProblemDescription'))         AS `chpProblemDescription`,#问题描述

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpFaulttime'))             AS `chpFaulttime`,#故障时间

                 `c`.`BussinessJson` ->> '$.chpFaultClass'                                     as chpFaultClass,#故障分类

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpSuggestedSolution'))          AS `chpSuggestedSolution`,#建议解决方案

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpWarrantyStatus'))        AS `chpWarrantyStatus`,#保修状态

                 concat(

                         (select name

                          from basic_datadictionary bd

                          where bd.code = `c`.`BussinessJson` ->> '$.chpActualSolutionCode'

                            and bd.Deleted = 0),

                         ',',

                         if(`c`.`BussinessJson` ->> '$.chpActualSolutionCode'='other',

                             ifnull(`c`.`BussinessJson` ->> '$.chpActualSolutionDetail', ''),''))      AS `chpActualSolutionName`,#实际处理方案(实际处理方案为其它时展示详细处理信息)

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpIfCharge'))              AS `chpIfCharge`,

                 `c`.`BussinessJson` ->> '$.chpAfterSaleRemark'                                as chpAfterSaleRemark,#施工备注(在JSON表)

                 `c`.`BussinessJson` ->> '$.chpLogisticsNum'                                   as chpLogisticsNum,#物流单号

                 `g`.`ExtraJson` ->> '$.chpShippingWarehouse'                                  as chpShippingWarehouse,#出货仓库

                 (select group_concat(

                                 concat(tw.MaterialName, ',', ifnull(tw.MaterialNo, '无编码'), ',', ifnull(tw.Amount, 0),

                                        ';') SEPARATOR '

')

                  from tb_workgoodsdetail tw

                  where g.Id = tw.WorkGoodsId

                    and tw.Deleted = 0

                  group by tw.WorkOrderId)                                                     as chpWarehouseMaterials,# 所用物料	(拼接)

                  `c`.`BussinessJson` ->> '$.chpMaterialSN'  as chpMaterialSN,#故障物料SN

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlePrice'  as chpWorkerSettlePrice, #优工结算价(总价)

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlementMethod' chpWorkerSettlementMethod, #优工结算方式

                  `c`.`BussinessJson` ->> '$.chpWorkerFeeRemark' chpWorkerFeeRemark, #优工费用备注

    if(c.BussinessJson->>'$.chpInstallConditionDate'='null',null,c.BussinessJson->>'$.chpInstallConditionDate')  chpInstallConditionDate ,#具备安装条件日期,

       c.BussinessJson->>'$.chpPileInventoryResults'    as chpPileInventoryResults, #桩盘点结果

       c.BussinessJson->>'$.chpColumnInventoryResults'    as chpColumnInventoryResults, #立柱盘点结果

      #增项费分佣比例(%)

           c.BussinessJson->>'$.AdditionFeeCommissionRatio' as AdditionFeeCommissionRatio,##增项费分佣比例(%)

           (select sum(ifnull(FeeValue,0)) from tb_feeapplicationinfo f1

            where a.Id = f1.TargetId and f1.Deleted = 0 and f1.AuditStatus = 2 and f1.OrgCode = '1067'

              and f1.FeeItemId in (select id

                                   from tb_feeiteminfo f2

                                   where f2.FeeItemName in

                                         ('漏保补贴','私桩计件-安装','私桩计件-售后','公桩计件(申请)','镀锌管补贴','增项',

                                         '电缆补贴','远补','用车补贴','奖金','差异补发','客诉扣款','差异扣除')

                                     and f2.Deleted = 0 and f2.OrgCode = '1067' and f2.Enable=1)) as AllSubsidy, #总费用

           fn_GetItemFeeById(a.id,'私桩计件-安装','1067') as InstallPriPileSubsidy, #私桩计件

           fn_GetItemFeeById(a.id,'私桩计件-售后','1067') as AfterSalePriPileSubsidy, #私桩计件

           #fn_GetItemFeeById(a.id,'漏报补贴','1067') as UnderreportingSubsidy, #漏报补贴

           fn_GetItemFeeById(a.id,'公桩计件(申请)','1067') as ChargingPileSubsidy, #公桩计件(申请)

           fn_GetItemFeeById(a.id,'漏保补贴','1067') as LeakageInsuranceSubsidy, #漏保补贴

           fn_GetItemFeeById(a.id,'镀锌管补贴','1067') as GalvanizedPipeSubsidy, #镀锌管补贴

           fn_GetItemFeeById(a.id,'增项','1067') as AdditionSubsidy , #增项

           fn_GetItemFeeById(a.id,'电缆补贴','1067') as LineSubsidy , #电缆补贴

           fn_GetItemFeeById(a.id,'远补','1067') as RemoteSubsidy , #远补

           fn_GetItemFeeById(a.id,'用车补贴','1067') as CarSubsidy , #用车补贴

           fn_GetItemFeeById(a.id,'奖金','1067') as BonusSubsidy , #奖金

           fn_GetItemFeeById(a.id,'差异补发','1067') as DifferenceSubsidy, #差异补发

           fn_GetItemFeeById(a.id,'客诉扣款','1067') as ComplaintDeduction,#客诉扣款

           fn_GetItemFeeById(a.id,'差异扣除','1067') as DifferenceDeduction,#差异扣除

       if(c.BussinessJson->>'$.chpPilesNum'='',null,c.BussinessJson->>'$.chpPilesNum')  as chpPilesNum, #(充电桩)桩数量

       if(c.BussinessJson->>'$.chpGunsNum'='',null,c.BussinessJson->>'$.chpGunsNum') as chpGunsNum, #(充电桩)枪数量

       if(c.BussinessJson->>'$.chpParkSpaceNum'='',null,c.BussinessJson->>'$.chpParkSpaceNum')as chpParkSpaceNum, #(充电桩)车位数量

                  /* (select f1.CustomizeJson->>'$.BelongPro'

        from (`serviceordercenter`.`tb_userinfo` `e1`

                 left join `serviceordercenter`.`tb_userdetail` `f1` on ((`e1`.`Id` = `f1`.`Id`)))

        where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and

               (`e1`.`TeamCode` = '10670001'))

        limit 1)                                                                                        AS `BelongPro` #人员归属省份*/

    (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('调度工单(勘测)','调度工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1) as  DispatchTime,  #`勘测调度完成时间/调度完成时间

					`c`.`BussinessJson` ->> '$.CustomerAuditApprovalTime' as CustomerAuditApprovalTime,#客户审核通过时间

          `c`.`BussinessJson` ->> '$.chpOrderSource' as chpOrderSource #订单来源

          from tb_workorderinfo a

                   left join tb_worksubjectsummary b on a.id = b.WorkOrderId and b.Deleted = 0

                   left join tb_workbussinessjsoninfo c on a.id = c.WorkOrderId and c.Deleted = 0

                   left join tb_chpworkorderinfo d on a.id = d.id and d.Deleted = 0

                   left join tb_workserviceinfo e on a.id = e.WorkOrderId and e.Deleted = 0

                   left join tb_workfeeinfo f1 on a.id = f1.WorkOrderId and f1.Deleted = 0

              #left join tb_workfeeitem g1 on f1.id = g1.FeeInfoId and g1.FeePurpose = '勘测费用' and g1.Deleted = 0

                   left join tb_workfeeitem g2 on f1.id = g2.FeeInfoId and g2.FeePurpose = '增项费用' and g2.Deleted = 0

                   left join tb_workgoodsinfo g on a.id = g.WorkOrderId and g.Deleted = 0 and g.GoodsType = 0

                   left join tb_workgoodsinfo gg on a.id = gg.WorkOrderId and gg.Deleted = 0 and gg.GoodsType = 29

                   left join tb_workgoodsdetail h

                             on g.id = h.WorkGoodsId and h.Deleted = 0 and a.OrderType = '9856' #and h.MaterialTypeCode like '0101%'

                   left join tb_appointmentconcat ac on ac.WorkOrderId = a.Id and ac.Deleted = 0

          where a.Deleted = 0

            and a.ServiceProviderCode = '1067'

            and a.id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('ChpCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_ChpCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;

    select sys_ErrCode, sys_ErrMessage;

END

proc_generateInstitutional

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_generateInstitutional \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_generateInstitutional`(in num int)
begin

	declare whilenum int default 5000;

	while whilenum < num do

		set @name= concat('系统生成',whilenum);

		SELECT @SortOrder:=IFNULL(MAX(SortOrder) + 1,1) FROM basic_institutionalinfo WHERE Deleted=0 AND ParentId='IJ9999999878';

		SELECT @Code:=concat( TeamCode,LPAD(IFNULL(MAX(CAST(RIGHT(Code, 4) AS SIGNED)) + 1,1),4,'0')) 

			FROM basic_institutionalinfo WHERE Deleted=0 AND TeamCode ='ZR01ZR001';

		#Level=3,OrgCode = 1001,TeamCode=ZR01ZR001,Code= ZR01ZR001+  ,SortOrder = max+1,name

		INSERT INTO basic_institutionalinfo(Id,ParentId,Code,Name,Level,SortOrder,OrgCode,TeamCode,InsertTime) 

					VALUES(fn_nextval('IJ'),'IJ9999999878',@Code,@name,3,@SortOrder,'1001','ZR01ZR001',NOW());

	  set whilenum = whilenum +1;



	end while;

	set num = whilenum;

end

proc_DeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DeleteOrderInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_DeleteOrderInfo`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DeleteOrderInfo`(

		InOrderId char(12),

		InDeletedById char(36),

		InDeletedAt datetime

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年4月19日

#Comment: 工单删除

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





#删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkorderID=InOrderId

  AND Deleted=0;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_DeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_HomeOrderdetail

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeOrderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeOrderdetail`(IN InDate date, IN EndDate date)
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_工单数据明细(每日)
#CreatedAt: 2023-08-29 13:29:44
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();

	#开启事务
	START TRANSACTION;

	# 删除今日单据
	# DELETE FROM home_orderdetaildaily WHERE CheckDate = CURRENT_DATE();

	# 写入表
    # 1.下单时间为昨日 tb_workorderinfo.CreatedAt 建单时间
    INSERT INTO home_orderdetaildaily(DetailType,WorkOrderId,WorkStatus,ProviderCode,OrderType,CustomerId,CustomerName,
    ProCode,ProName,CityCode,CityName,AreaCode,AreaName,ServiceId,ServiceCode,ServiceName,DetailTime,CheckDate)
    SELECT 1,a.Id,a.WorkStatus,IFNULL(a.ServiceProviderCode,'1001') AS ServiceProviderCode,a.OrderType,a.CustomerId,
           a.CustomerName,a.ProCode,a.ProName,a.CityCode,a.CityName,a.AreaCode,a.AreaName,
           b.ServiceId,b.ServiceCode,b.ServiceName,a.CreatedAt,CURRENT_DATE()
    FROM tb_workorderinfo a,
         tb_workserviceinfo b
    WHERE a.Id=b.WorkOrderId
      AND a.CreatedAt>=InDate
      AND a.CreatedAt=InDate
      AND d.StartedAt=InDate
      AND d.StartedAt=InDate
      AND a.EffectiveSuccessfulTime=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.ClosedAt
                

proc_RecoveryBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_RecoveryBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_RecoveryBySingle`(

InWorkOrderId varchar(12) 

)
    SQL SECURITY INVOKER
BEGIN





  DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE IsSuc TINYINT(1);	

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

	SET sys_StartTime = NOW();

	SET IsSuc=0;

 



	#开启事务

	START TRANSACTION;

	

	

	

#1.0 恢复主库vhs表

 update serviceordercenter.tb_vhsworkorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null 	where Id=InWorkOrderId and Deleted = 2; 

#2.0 恢复主库workorder表

 update serviceordercenter.tb_workorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where Id=InWorkOrderId and Deleted = 2;

#3.0 恢复 tb_workorderstatus

update serviceordercenter.tb_workorderstatus 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.0 tb_workcarinfo 车辆信息

update serviceordercenter.tb_workcarinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.0 tb_workserviceinfo 工单备案信息 

update serviceordercenter.tb_workserviceinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.0 tb_workservicesubject

update serviceordercenter.tb_workservicesubject 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#7.0 tb_workaddressinfo

update serviceordercenter.tb_workaddressinfo 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2; 

#8.tb_workservicesubject 服务科目

update serviceordercenter.tb_workservicesubject 	set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#9.tb_worksubjectsummary 服务科目

update serviceordercenter.tb_worksubjectsummary 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#10.tb_appointment 预约

update serviceordercenter.tb_appointment 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#11.tb_appointmentconcat 预约拼接

update serviceordercenter.tb_appointmentconcat 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#12.tb_workbussinessjsoninfo  工单业务信息冗余JSON

update serviceordercenter.tb_workbussinessjsoninfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#13.tb_worktaginfo 工单标记信息

update serviceordercenter.tb_worktaginfo  set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#14.tb_workresourceinfo 附件信息

update serviceordercenter.tb_workresourceinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#15  basic_resourceitem 

UPDATE serviceordercenter.tb_workresourceinfo a 

 JOIN serviceordercenter.basic_resourceitem  c on a.resourceId=c.Id  

SET c.Deleted =0,c.DeletedAt = null, c.DeletedById = null

WHERE a. `WorkOrderId` =InWorkOrderId

and c.Deleted = 2;

#16 tb_workfeeinfo 

update serviceordercenter.tb_workfeeinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#17 tb_workfeedetail

update serviceordercenter.tb_workfeedetail  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#18 tb_workfeeitem

update serviceordercenter.tb_workfeeitem  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

# 19 tb_vhsworkfilereceiveinfo

update serviceordercenter.tb_vhsworkfilereceiveinfo  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#20 tb_vhsworkrecordinfo

update serviceordercenter.tb_vhsworkrecordinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#21 tb_vhsworkorderrecorddetail  用Id

update serviceordercenter.tb_vhsworkorderrecorddetail  set Deleted=0 ,DeletedAt=null,DeletedById=null where Id=InWorkOrderId and Deleted = 2;

#22 tb_vhsworkauditinfo

update serviceordercenter.tb_vhsworkauditinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#25 tb_operatedinfo 

update serviceordercenter.tb_operatedinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#26  tb_operatinginfo

update serviceordercenter.tb_operatinginfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#27 tb_recordinfo

update serviceordercenter.tb_recordinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#28 tb_remarkinfo

update serviceordercenter.tb_remarkinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#30 tb_auditinfo

update serviceordercenter.tb_auditinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#31 tb_mortgageechangerecord

update serviceordercenter.tb_mortgageechangerecord set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#32 tb_workorderchangelog

update serviceordercenter.tb_workorderchangelog set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#36 tb_worksignininfo

update serviceordercenter.tb_worksignininfo  set Deleted=0   ,DeletedAt=null,DeletedById=null  where WorkOrderId=InWorkOrderId and Deleted = 2;

#37 rp_vhsworkorderdetail 

update serviceordercenter.rp_vhsworkorderdetail set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#38 rp_vhsworkorderinfodetail

update serviceordercenter.rp_vhsworkorderinfodetail set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

 

 

#his库逻辑删除

update serviceordercenterhis.tb_vhsworkorderinfo  set deleted=1,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId;

update serviceordercenterhis.tb_workorderinfo set deleted=1 ,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId; 

	

	

	

	

	

	

	

	

	



######################################################################################################################################  工作流begin



#1.tb_workflowinfo  工作流信息 

update serviceordercenter.tb_workflowinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#2.tb_workoperateinfo

update serviceordercenter.tb_workflowjsoninfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#3.tb_workoperateinfo

update serviceordercenter.tb_workoperateinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.tb_workoperationinfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.tb_workorderjsoninfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.workflowitems workflownodes workflowhandlingstatus 全量



 

#7.workflowruntimeitems 

UPDATE serviceordercenter.workflowruntimeitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and b.DeletedById = '12345678-0000-0000-0000-000000000000';



#8.workflowruntimeactivities

UPDATE  serviceordercenter.workflowruntimeactivities t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#9.workflowruntimestatus 

UPDATE  serviceordercenter.workflowruntimestatus t

join serviceordercenter.tb_vhsworkorderinfo b on t.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





#10.workflowruntimesteps

UPDATE  serviceordercenter.workflowruntimesteps t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#11.workflowruntimeactors

UPDATE  serviceordercenter.workflowruntimeactors t1

 join serviceordercenter.workflowruntimesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id



SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';



#12.workflowruntimerelatedactors 





#13. workflowcompleteitems 

UPDATE serviceordercenter.workflowcompleteitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and  b.DeletedById = '12345678-0000-0000-0000-000000000000';



#14.workflowcompletesteps  

UPDATE  serviceordercenter.workflowcompletesteps t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#15.workflowcompleteactors

UPDATE  serviceordercenter.workflowcompleteactors t1

 join serviceordercenter.workflowcompletesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';





#16.workflowcompleteactivities

UPDATE  serviceordercenter.workflowcompleteactivities t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





##################################################################################################  工作流end .













#################################################################################################    删除his库工作流相关表数据 begin 



 

#1.tb_workflowinfo  工作流信息 

update serviceordercenterhis.tb_workflowinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#2.tb_workoperateinfo

update serviceordercenterhis.tb_workflowjsoninfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#3.tb_workoperateinfo

update serviceordercenterhis.tb_workoperateinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#4.tb_workoperationinfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#5.tb_workorderjsoninfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#6.workflowitems workflownodes workflowhandlingstatus 全量



#7.workflowruntimeitems 

UPDATE serviceordercenterhis.workflowruntimeitems b

JOIN serviceordercenterhis.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 1  ,

    b.DeletedAt = now() ,

    b.DeletedById = '12345678-0000-0000-0000-000000000000'

WHERE a.Id=InWorkOrderId;









#################################################################################################    删除his库工作流相关表数据 end  









	

	

	

	 

		

	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET IsSuc=0;

		ROLLBACK;

	ELSE

		SET IsSuc=1;

		COMMIT;

	END IF;  

	

	

	



INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT IsSuc AS IsSuccess,

           'RecoveryBySingle' AS Logger,

           'proc_RecoveryBySingle'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',InWorkOrderId,CONCAT('入参:',InWorkOrderId,',错误信息:' ,sys_ErrMessage)) AS ErrMessage,

           NOW() AS LogTime;

					 

					 

					 

					 





END

proc_AfcWorkOrderUnFollowDays

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcWorkOrderUnFollowDays \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcWorkOrderUnFollowDays`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcWorkOrderUnFollowDays`()
    COMMENT '壹好车服-更新金融未到退案时间的工单未跟进天数(每天)'
BEGIN

    #Author:Wangxh

    #Create: 2022年02月15日

    #Update:2024-04-16



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #开启事务

    START TRANSACTION;

    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is not null;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is null

      and exists(SELECT 1 FROM tb_workflowinfo c WHERE c.StepName = '派单' AND a.WorkOrderId = c.WorkOrderId AND c.Deleted = 0 and c.DoneAt is not null);



    update tb_afcworkfinanceinfo a,

           tb_workbussinessjsoninfo b

    set b.BussinessJson = json_set(BussinessJson, '$.UnFollowDays', 0)

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      #and ifnull(b.v_lastnegotiatortime) is not null

      #and b.v_FollowFrequency = 1

      and b.v_UnFollowDays = -1;

/*

     update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = json_remove(BussinessJson, '$.UnFollowDays')

    where a.deleted = 0

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_FollowFrequency = 0;



 */



    #修改AFC明细报表

    UPDATE rp_afcworkorderdetail A,tb_workbussinessjsoninfo B,tb_afcworkfinanceinfo C

        SET A.UnFollowDays = B.v_UnFollowDays

    WHERE A.Deleted = 0

    AND A.WorkOrderId = B.WorkOrderId

    AND B.Deleted = 0

    AND A.WorkOrderId = C.WorkOrderId

    AND C.Deleted = 0

    AND C.RetreatTime >= now();



    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        ROLLBACK;

    ELSE

        SET Result = 0;

        COMMIT;

    END IF;

    #返回结果

    #SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger,

                                 ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                       AS IsSuccess,

           'AfcWorkOrderUnFollowDays'                   AS Logger,

           'proc_AfcWorkOrderUnFollowDays'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())  AS TimeSpan,

           sys_ErrCode                                  AS ErrCode,

           IF(Result = 1, CONCAT(sys_ErrMessage), null) AS ErrMessage,

           NOW()                                        AS LogTime;



END

proc_CreateWorkFlow

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateWorkFlow \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateWorkFlow`(InOrgCode varchar(50), InOrderType varchar(10),

                                                            InOrderTypeName varchar(50))
    DETERMINISTIC
BEGIN

    #Author: wangxh

    #Create: 2022-10-31 11:48:24

    #Comment: 创建商户-工作流初始化

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgName varchar(50);

    DECLARE InVersionOfId varchar(36);

    DECLARE InItemId varchar(20);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

        GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

            sys_ErrMessage= MESSAGE_TEXT;

    END;

    SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



    START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    select ShortName

    into InOrgName

    from basic_serviceprovider

    where ProviderCode = InOrgCode

      and Deleted = 0;



    select uuid() into InVersionOfId;

    select IFNULL(InOrderType, '001') into InItemId;



    if (select 1

        from basic_apollo

        where NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0) is true then

        set Result = 1;

        rollback;

        set sys_ErrCode = '10000';

        set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

    else

        INSERT INTO `basic_apollo` (NameSpace, `Key`, `Value`, `Remark`)

        VALUES ('WrokflowCodes', InOrderType, '{

          "Value": "Install001"

        }', concat(InOrgName, InOrgCode, InItemId));

        update serviceordercenter.basic_apollo

        set Value= json_set(Value, '$.Value', CONCAT('Common-', InOrgCode, '-', InItemId))

        where Value ->> '$.Value' = 'Install001'

          and NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0;

        if (select 1

            from basic_apollo

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and InOrderType member of (value ->> '$.Value[*].OrderType')

              and Deleted = 0) is true then

            set Result = 1;

            rollback;

            set sys_ErrCode = '10000';

            set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

        else

            update serviceordercenter.basic_apollo a

            set Value = JSON_ARRAY_INSERT(Value, '$.Value[0]', json_object('OrderType', InOrderType,

                                                                           'AppointStatus',

                                                                           JSON_ARRAY(

                                                                                   json_object('Tag', 1, 'Name', '改约',

                                                                                               'Code',

                                                                                               concat('ChangeReason', InOrderType)),

                                                                                   json_object('Tag', 2, 'Name', '等通知',

                                                                                               'Code',

                                                                                               concat('WaitNotice', InOrderType)),

                                                                                   json_object('Tag', 3, 'Name', '请求关闭',

                                                                                               'Code',

                                                                                               concat('CloseReason', InOrderType))

                                                                               )))

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and Deleted = 0;

            if (select 1

                from basic_datadictionary

                where code in (concat('ChangeReason', InOrderType), concat('WaitNotice', InOrderType),

                               concat('CloseReason', InOrderType),

                               concat('ChangeReason', InOrderType, '001'), concat('WaitNotice', InOrderType, '001'),

                               concat('CloseReason', InOrderType, '001'))

                  and Deleted = 0) is true then

                set Result = 1;

                rollback;

                set sys_ErrCode = '10000';

                set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有字典表配置,请联系管理员核查;');

            else

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                values (fn_nextval('DD'), concat('ChangeReason', InOrderType), concat(InOrderTypeName, '-申请原因-改约'),

                        null, InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('WaitNotice', InOrderType), concat(InOrderTypeName, '-申请原因-等通知'), null,

                        InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('CloseReason', InOrderType), concat(InOrderTypeName, '-申请原因-请求关闭'),

                        null, InOrgCode, 1, now(), 0);

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('ChangeReason', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('WaitNotice', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('CloseReason', InOrderType)

                  and deleted = 0;

                if (select 1

                    from workflowitems

                    where Code = CONCAT('Common-', InOrgCode, '-', InItemId)

                      and Deleted = 0

                      and VersionState = 'PUBLISHED') is true then

                    set Result = 1;

                    rollback;

                    set sys_ErrCode = '10000';

                    set sys_ErrMessage =

                            concat(ifnull(sys_ErrMessage, ''), ' 有已发布的 ', concat(InOrgName, InItemId, '流程-支持出发到达签到'),

                                   ' 工作流,请联系管理员核查;');

                else

                    INSERT INTO `workflowitems` (`Id`, `Code`, `Name`, `TargetTableName`, `Description`, `VersionOfId`,

                                                 `VersionIndex`, `VersionState`, `PublishedById`, `PublishedAt`,

                                                 `ExpiredAt`,

                                                 `OverTime`, `TimeOut`, `RemindNum`, `IntervalHour`, `CreatedById`,

                                                 `CreatedAt`,

                                                 `UpdatedById`, `UpdatedAt`, `Deleted`, `DeletedById`, `DeletedAt`,

                                                 `DatabaseKey`)

                    VALUES (uuid(), CONCAT('Common-', InOrgCode, '-', InItemId), concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), InVersionOfId, 2, 'DRAFT',

                            null,

                            null,

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default'),

                           (InVersionOfId, CONCAT('Common-', InOrgCode, '-', InItemId),

                            concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), null, 1, 'PUBLISHED', null,

                            now(6),

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default');



                    INSERT INTO `workflownodes` (`Id`, `WorkflowItemId`, `NodeType`, `Code`, `Name`, `SortOrder`,

                                                 `AllowCancel`,

                                                 `AllowStepCancel`, `IsNotify`, `HandlingConditionType`,

                                                 `AcceptedByPercentageN`,

                                                 `HandlingConditionExpression`, `Shape_X`, `Shape_Y`,

                                                 `CreatedById`, `CreatedAt`, `UpdatedById`, `UpdatedAt`, `Deleted`,

                                                 `DeletedById`,

                                                 `DeletedAt`)

                    select UUID()                                    as `Id`,

                           d.id                                      as `WorkflowItemId`,

                           a.`NodeType`,

                           replace(replace(a.code, '1004005', concat(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId)) as `Code`,

                           a.`Name`,

                           a.`SortOrder`,

                           a.`AllowCancel`,

                           a.`AllowStepCancel`,

                           a.`IsNotify`,

                           a.`HandlingConditionType`,

                           a.`AcceptedByPercentageN`,

                           a.`HandlingConditionExpression`,

                           a.`Shape_X`,

                           a.`Shape_Y`,

                           d.`CreatedById`,

                           now(6)                                       `CreatedAt`,

                           d.`UpdatedById`,

                           now(6)                                       `UpdatedAt`,

                           0                                            `Deleted`,

                           null                                         `DeletedById`,

                           null                                         `DeletedAt`

                    from workflownodes a

                             join workflowitems c

                                  on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                    where a.Deleted = 0

                    order by a.WorkflowItemId, a.SortOrder;

/*

INSERT INTO `workflownodes` (`Id`,`WorkflowItemId`,`NodeType`,`Code`,`Name`,`SortOrder`,`AllowCancel`,`AllowStepCancel`,`IsNotify`,`HandlingConditionType`,`AcceptedByPercentageN`,`HandlingConditionExpression`,`Shape_X`,`Shape_Y`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`Deleted`,`DeletedById`,`DeletedAt`,`AllowAutomaticAudit`)

VALUES

 (UUID(),DRAFTFlowId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0);

*/

                    insert into workflownodeactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                                   customexpression,

                                                   createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid,

                                                   deletedat)

                    select UUID()                                       AS id,

                           E.ID                                         AS workflownodeid,

                           A.actortype,

                           case A.ActorType when 'ROLE' then

                               (select UserCenterRoleId from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetid  end as targetid,

                           case A.ActorType when 'ROLE' then

                               (select RoleName from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetname  end as targetname,

                           A.customtitle,

                           replace(A.customexpression, 'Code1004005005',

                                   CONCAT('Code', InOrgCode,InItemId, '005')) as customexpression,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                               deleted,

                           null                                            deletedbyid,

                           null                                            deletedat

                    from workflownodeactors a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # workflownodecommentactors 没数据

/*

insert into workflownodecommentactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                      customexpression, createdbyid, createdat, updatedbyid, updatedat,

                                      deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.targetid, A.targetname, A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code','1041','001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownodecommentactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-','1041','-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodeactions;

                    insert into workflownodeactions(id, workflownodeid, subject, actiontype, workflowhandlingstatustype,

                                                    sortorder, scripts, createdbyid, createdat, updatedbyid, updatedat,

                                                    deleted,

                                                    deletedbyid, deletedat)

                    select UUID()                                    AS id,

                           E.ID                                      AS workflownodeid,

                           A.subject,

                           A.actiontype,

                           A.workflowhandlingstatustype,

                           A.sortorder,

                           replace(replace(A.scripts, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   CONCAT(InOrgCode, '-', InItemId)) as scripts,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                            deleted,

                           null                                         deletedbyid,

                           null                                         deletedat

                    from workflownodeactions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



#select * from workflowhandlingstatus;

                    insert into workflowhandlingstatus(id, workflownodeid, code, name, handlingstatustype, sortorder,

                                                       createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                       deletedbyid,

                                                       deletedat)

                    select UUID()                                                  AS id,

                           E.ID                                                    AS workflownodeid,

                           replace(a.code, '1004005', CONCAT(InOrgCode, InItemId)) As code,

                           A.name,

                           A.handlingstatustype,

                           A.sortorder,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                                          deleted,

                           null                                                       deletedbyid,

                           null                                                       deletedat

                    from workflowhandlingstatus a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    #select * from workflownoderelatedactors; 无关联

/*

insert into workflownoderelatedactors(id, workflownodeid, actortype, handlingstatustype, targetid, targetname, customtitle, customexpression,

                                      createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.handlingstatustype, A.targetid,A.targetname,

        A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code',InOrgCode,'001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownoderelatedactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodestepconditions;

                    insert into workflownodestepconditions(id, workflownodeid, workflowitemid, subject, handlingstatus,

                                                           sortorder,

                                                           scripts,

                                                           nextworkflownodeid, shape_x, shape_y,

                                                           createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                           deletedbyid,

                                                           deletedat)

                    select UUID() AS id,

                           E.ID   AS workflownodeid,

                           D.ID   AS workflowitemid,

                           A.subject,

                           A.handlingstatus,

                           A.sortorder,

                           A.scripts,

                           E1.ID  AS nextworkflownodeid,

                           A.shape_x,

                           A.shape_y,

                           E.createdbyid,

                           E.createdat,

                           E.updatedbyid,

                           E.updatedat,

                           0         deleted,

                           NULL      deletedbyid,

                           NULL      deletedat

                    from workflownodestepconditions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                                      and c.Code ='Common-1004-005' and a.WorkflowItemId = c.id

                             left join workflowitems d

                                       on c.VersionState = d.VersionState and

                                          d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d.Deleted = 0

                             left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                             left join workflownodes b1 on a.NextWorkflowNodeId = b1.Id and b1.Deleted = 0

                             left join workflowitems c1

                                       on b1.WorkflowItemId = c1.Id and c1.Deleted = 0 and

                                          c1.VersionState in ('PUBLISHED', 'DRAFT')

                                           and c1.Code ='Common-1004-005' and a.WorkflowItemId = c1.id

                             left join workflowitems d1

                                       on c1.VersionState = d1.VersionState and

                                          d1.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d1.Deleted = 0

                             left join workflownodes e1

                                       on b1.name = e1.Name and d1.id = e1.WorkflowItemId and e1.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # select * from workflowprocessstates;

#select * from workflowrelatedactors;#空表

/*

INSERT INTO `workflowrelatedactors` (id, workflowitemid, actortype, targetid, targetname, customtitle, customexpression,

                                     createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() as `Id`,d.id as `WorkflowItemId`,a.`actortype`, a.targetid, a.targetname, a.customtitle, a.customexpression,

       d.`CreatedById`,now(6) `CreatedAt`,d.`UpdatedById`,now(6) `UpdatedAt`,

       0 `Deleted`,null `DeletedById`,null `DeletedAt`

 from workflowrelatedactors a

join workflowitems c on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and c.VersionState in('PUBLISHED','DRAFT')

 join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

where a.Deleted = 0

order by a.WorkflowItemId;

*/

                    insert into basic_workstepinfo(workflowcode, nodecode, nodename, nodestatus, workflowstepname,

                                                   workflowsteptype, inserttime, deleted)

                    select CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                           replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId))   as nodecode,

                           a.nodename,

                           a.nodestatus,

                           a.workflowstepname,

                           a.workflowsteptype,

                           now()                                          inserttime,

                           0                                              deleted

                    from basic_workstepinfo a

                             join workflownodes b on a.NodeCode = b.Code and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in ('PUBLISHED') and

                                     c.Code ='Common-1004-005'

                                      and a.WorkFlowCode = c.Code

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;

                    if (select 1

                        from basic_workflowstatus

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0) is true then

                        update basic_workflowstatus

                        set Deleted = 1

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0;

                    else

                        insert into basic_workflowstatus(workstatus, workstatuscode, workstatusname, workflowcode,

                                                         workflowname, nodecode, nodename, nodecategory, orgcode,

                                                         ifsupportclosed,

                                                         inserttime, deleted)

                        select workstatus,

                               null                                           workstatuscode,

                               workstatusname,

                               CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                               concat(InOrgName, InOrgCode, InItemId)      as workflowname,

                               replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                       concat(InOrgCode, '-', InItemId))   as nodecode,

                               a.nodename,

                               replace(a.nodecategory, '1004', InOrgCode)  as nodecategory,

                               InOrgCode                                   as orgcode,

                               a.ifsupportclosed,

                               now()                                          inserttime,

                               0                                              deleted

                        from basic_workflowstatus a

                        where a.WorkFlowCode ='Common-1004-005'

                          and a.Deleted = 0;



                        insert into basic_workflownoderelation(id, operationid, operationcode, operationname,

                                                               workflowstatusid, nodecode, nodename, sortorder, inserttime)

                        select

                        fn_nextval('FA') as id,

                               a.OperationId,

                               a.OperationCode,

                               a.OperationName,

                               b1.id as workflowstatusid,

                               b1.NodeCode,

                               b1.NodeName,

                               a.SortOrder,

                               now()

                               from basic_workflownoderelation a

                        join basic_workflowstatus b on a.NodeCode = b.NodeCode and b.Deleted = 0 and b.OrgCode = '1004' and a.WorkFlowStatusId = b.id and b.WorkFlowCode='Common-1004-005'

                        join basic_workflowstatus b1 on b.Nodename = b1.Nodename and b1.Deleted = 0 and b1.OrgCode = InOrgCode and b1.WorkFlowCode=CONCAT('Common-', InOrgCode, '-', InItemId)

                        where  (a.NodeCode like 'Code1004005%' or a.NodeCode in('Common-1004-005_End','STOPPED','Common-1004-005_Start')) and a.OperationCode like '1000%' and a.Deleted = 0

                        ;

                    END IF;

                END IF;

            END IF;

        END IF;

    END IF;

    #select * from tb_workflowjsoninfo;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

    #事务提交/回滚模块

    IF sys_ErrCode <> '00000' THEN

        SET Result = 1;

        ROLLBACK;

        update basic_ordertypeinfo

        set IfInitialize = 3

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

    ELSE

        SET Result = 0;

        update basic_ordertypeinfo

        set IfInitialize = 1

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

        COMMIT;

    END IF; #返回结果



    SELECT Result         AS ErType,

           sys_ErrMessage AS ErMessage; #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'CreateWorkFlow'                            AS Logger,

           'proc_CreateWorkFlow'                       AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           concat(InOrgCode, InItemId, sys_ErrMessage) AS ErrMessage,

           NOW()                                       AS LogTime;

END

proc_flinktest

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_flinktest \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_flinktest`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_flinktest`()
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Comment: flnik测试



SET @i=1;

WHILE @i<500 DO

	

	INSERT INTO flink_tablea(Id,TABLEAFIELDA,TABLEAFIELDB) 

	SELECT @i,@i,@i;

	

	SET @j=1;

	  WHILE @j<500 DO

	

	  INSERT INTO flink_tableb(TABLEBFIELDA,TABLEBFIELDB)

	  SELECT @i,@j;

	

	  SET @j=@j+1;

		

		#SELECT SLEEP(0.5);

		

	  END WHILE;

	

	SET @i=@i+1;

	

END WHILE;



END

proc_VhsCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细-质量考核明细表'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderdetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderdetail(WorkOrderId,CustomerId,CustomerName,SubCompanyId,SubCompanyName,AppCode,OrderType,SubjectCode,SubjectName,

                                  ProCode,ProName,CityCode,CityName,UserName,PlateNumber,VinNumber,CreatedAtDay,CreatedAtDayName,CreatedAtTime,

                                  WorkFlowAcceptDay,WorkFlowAcceptTime,RecordDay,RecordTime,ApprovalTime,CerRegistDate,ResultAuditState,ResultRejectReason,

                                  ReceiptAuditState,ReceiptRejectReason,ReturnAuditState,ReturnRejectReason,

																	ReceiveState,FirstReturnAuditState,FirstReturnRejectReason,

																	

																	HandlingMethodCode,HandlingMethodName,HandlingTeamCode,

                                  HandlingTeamName,RecordLimitState,AcceptLimitState,ApprovalOperCode,ApprovalOperName,ApprovalDoneAt,AcceptOperCode,

                                  AcceptOperName,RecordOperCode,RecordOperName,ServiceCode,ServiceName,ServicePosition,CarRemark,VhsAppCode,

                                  AppointRemark,ServiceRemark,ModifyRemark,CheckRemark,RequiredTime,InsertTime,Deleted,ReceiveTime,ActualReceiveMethod,ExpressNumber

                                  )

SELECT T.Id AS WorkOrderId,

       T.CustomerId AS CustomerId,

       T.CustomerName AS CustomerName,

       T.SubCompanyId AS SubCompanyId,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

       '7101' AS OrderType,

       B.SubjectCodeSummary AS SubjectCode,

       B.SubjectNameSummary AS SubjectName,

       A.ProCode AS ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       C.UserName AS UserName,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreatedAtDay,

       case DAYNAME(a.CreatedAt)

           when 'Monday' then '星期一'

           when 'Tuesday' then '星期二'

           when 'Wednesday' then '星期三'

           when 'Thursday' then '星期四'

           when 'Friday' then '星期五'

           when 'Saturday' then '星期六'

           when 'Sunday' then '星期日'

           end AS CreatedAtDayName,

       time(a.CreatedAt) AS CreatedAtTime,

       DATE_FORMAT(fn_GetWorkFlowTimeInfo(T.id,'分配工单'),'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(fn_GetWorkFlowTimeInfo(T.id,'分配工单')) AS WorkFlowAcceptTime,

       DATE_FORMAT(fn_GetLastRecordTimeById(T.id),'%Y-%m-%d') AS RecordDay,

       time(fn_GetLastRecordTimeById(T.id)) AS RecordTime,

       T.ApprovalTime AS ApprovalTime,

       D.CerRegistDate AS CerRegistDate,

       D.ResultAuditState AS ResultAuditState,

       D.ResultRejectReason AS ResultRejectReason,

       D.ReceiptAuditState AS ReceiptAuditState,

       D.ReceiptRejectReason AS ReceiptRejectReason,

       D.ReturnAuditState AS ReturnAuditState,

       D.ReturnRejectReason AS ReturnRejectReason,

			 

			 -- 2024.10.31新增 yft

			 m.ReceiveState,

       (SELECT n.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnAuditState,

			 (SELECT n.BussinessJson->>'$.FirstReturnRejectReason' AS `FirstReturnRejectReason` FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnRejectReason,

			 

			 

       E.HandlingMethodCode AS HandlingMethodCode,

       E.HandlingMethodName AS HandlingMethodName,

       E.HandlingTeamCode AS HandlingTeamCode,

       E.HandlingTeamName AS HandlingTeamName,

       D.RecordLimitState AS RecordLimitState,

       D.AcceptLimitState AS AcceptLimitState,

       h.OperatePerson AS ApprovalOperCode,

       h.OperateName AS ApprovalOperName,

       h.OperateTime AS ApprovalDoneAt,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',1) AS AcceptOperCode,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',2) AS AcceptOperName,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',1),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',1)) AS RecordOperCode,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',2),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',2)) AS RecordOperName,

       F.ServiceCode AS ServiceCode,

       F.ServiceName AS ServiceName,

       T.ExtraJson->>'$.ServicePosition' AS ServicePosition,

       C.Remark AS CarRemark,

       T.v_vhsAppCode AS VhsAppCode,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 9 order by h1.InsertTime desc limit 1) AS AppointRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 12 order by h1.InsertTime desc limit 1) AS ModifyRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       A.RequiredTime AS RequiredTime,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       min(i.OperateTime) as ReceiveTime,

  case m.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

       if(m.ExpressJson->>'$.ExpressNumber'='null',null,m.ExpressJson->>'$.ExpressNumber') ExpressNumber

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkauditinfo    D ON D.WorkOrderId = T.Id AND D.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_workoperateinfo     h on t.id = h.WorkOrderId and h.Reason = '考核通过' and h.Deleted=0

left join tb_workoperateinfo i on t.id = i.WorkOrderId and i.Deleted=0 and i.Reason in('归还','系统自动归还')

left join tb_vhsworkfilereceiveinfo m on t.id = m.workorderid and m.deleted=0 and m.ReceiveType=2

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_CreateOrgRule

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgRule \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgRule`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-附件规则+人员属性匹配条件

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

 DECLARE sys_ErrMessage VARCHAR(200);

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE SubRuleCode1 varchar(50);

 DECLARE SubRuleCode2 varchar(50);

 DECLARE SubRuleCode3 varchar(50);

 DECLARE SubRuleCode4 varchar(50);

 DECLARE SubRuleCode5 varchar(50);

 DECLARE MatchNodeCode1 varchar(50);

 DECLARE MatchNodeCode2 varchar(50);

 DECLARE MatchNodeCode3 varchar(50);

 DECLARE MatchNodeCode4 varchar(50);

 DECLARE MatchNodeCode5 varchar(50);

 declare RuleTypeCode1 varchar(50);

declare accessoryresourceId1 varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 select concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5;

 select concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into MatchNodeCode1,MatchNodeCode2,MatchNodeCode3,MatchNodeCode4,MatchNodeCode5;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted#,createdat

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用附件规则', '通用人员属性规则')*/

    #附件

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999457','orderType','工单类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'orderType',0,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999055','subjectCode','服务科目','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',1,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999053','addressfullName','服务地址-省+市+区','string',2,1,'"请选择"','pro-urban-areas',1,1,'in,nin,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'addressfullname',2,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999056','customerName','客户名称','string',2,1,'"请输入"','text',null,1,'eq,neq,cn,ncn,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'customername',3,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999998988','appointStatus','异常反馈类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,1,'[{"label": "改约", "value": "1", "default": false}, {"label": "等通知", "value": "2", "default": false}, {"label": "请求关闭", "value": "3", "default": false}]','{}','','',1,InOrgCode,InOrgName,'appointStatus',4,null,now(),0);

#select * from common_subruleinfo where SubRuleName = '适用全部工单的附件要求';

 /*

 select concat('RTC',date_format(now(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) into RuleTypeCode1;



 INSERT INTO `basic_datadictionary` (`Id`,`Code`,`Name`,`ParentId`,`OrgCode`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

 VALUES

        (fn_nextval('DD'),RuleTypeCode1,'异常反馈附件','DD0999999085',InOrgCode,null,null,now(),null,null,null,null,0);

 */

INSERT INTO `common_subruleinfo` (`Id`,`SubRuleCode`,`SubRuleName`,`RuleTypeCode`,`Priority`,`OrgCode`,`Enable`,`EnabledTime`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(fn_nextval('SR'),SubRuleCode1,'适用全部工单的附件要求','RTC202208256448',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode2,'适用全部工单的附件要求','RTC202203080001',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode3,'适用全部工单的附件要求','RTC202203080002',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode4,'适用全部工单的附件要求','RTC202210048979',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode5,'适用全部工单的附件要求','RTC202209204082',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0);

select fn_nextval('BM') into accessoryresourceId1;

 INSERT INTO `basic_accessoryresource` (`Id`,`Code`,`Name`,`OrgCode`,`ResourceId`,`Remark`,`CreatedById`,`ResoureJson`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(accessoryresourceId1,fn_nextval('BC'),'其他附件',InOrgCode,null,null,NULL,'{"ResourceNum": {"MaxNum": 100, "MinNum": 0, "ConditionType": "bt"}, "ResourceType": [{"ExtName": "jpg,jpeg,png", "ResType": "ResourcePic", "TypeName": "图片"}, {"ExtName": "mp4,m4v,webm", "ResType": "ResourceVideo", "TypeName": "视频"}, {"ExtName": "ogg,mp3,wav,m4a", "ResType": "ResourceAudio", "TypeName": "音频"}, {"ExtName": "txt,pdf,doc,docx,xls,xlsx,ppt,pptx", "ResType": "ResourceDoc", "TypeName": "文档"}]}',NOW(),null,null,null,null,0);

 /*select fn_nextval('SR') as id,

       concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))subrulecode,

       subrulename, ruletypecode, priority,

       InOrgCode orgcode, enable,

       date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00') as enabledtime,

       null createdbyid,

       now() createdat, null updatedbyid, null updatedat, null deletedbyid, null deletedat, 0 deleted

 from common_subruleinfo a

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0;*/

#select subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted from common_rulematchconditions

# where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 /*

 insert into common_rulematchconditions( subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted)

 select distinct a1.SubRuleCode subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, now() inserttime, 0 deleted

 from common_rulematchconditions b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = InOrgCode and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

 INSERT INTO `common_rulematchconditions` (`SubRuleCode`,`MatchGroup`,`MatchGroupOperater`,`PropertyId`,`MatchOperater`,`PropertyValues`,`InsertTime`,`Deleted`)

VALUES

 (SubRuleCode4,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode5,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode3,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode1,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode2,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0);

 update common_rulematchconditions

 set PropertyId=(select id

                 from common_listsearchproperty

                 where PropertyName = '工单类型'

                   and OrgCode = InOrgCode

                   and EntityName = '通用附件规则'#'通用附件规则'

                   and Deleted = 0)

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   ;

#select * from common_rulematchnodes where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

INSERT INTO `common_rulematchnodes` (`Id`,`SubRuleCode`,`MatchNodeCode`,`MatchNodeName`,`PropertyJson`,`ActionsJson`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

 (fn_nextval('MN'),SubRuleCode4,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode4,MatchNodeCode4,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode5,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode5,MatchNodeCode5,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode3,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode3,MatchNodeCode3,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode1,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode1,MatchNodeCode1,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode2,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode2,MatchNodeCode2,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0)

 ;

update common_rulematchnodes

 set ActionsJson=json_set(ActionsJson,'$[0].actionContent.actionLists[0].orgCode',InOrgCode,

    '$[0].actionContent.actionLists[0].id',accessoryresourceId1)

 where MatchNodeCode<>'root'

 and SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and ActionsJson->>'$[0].actionContent.actionLists[0].orgCode'='1004';

 /* insert into common_rulematchnodes( id, subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     createdat,deleted)

 select distinct  a1.subrulecode subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     now() createdat, 0 deleted

 from common_rulematchnodes b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = '1004' and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

#select * from common_rulematchrelation where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 INSERT INTO common_rulematchrelation(ID, SUBRULECODE, LINKTYPE, LINKTYPENAME, STARTMATCHNODE, ENDMATCHNODE, LINKPROPERTYJSON, LINKACTIONSJSON, SORTORDER, CREATEDAT, DELETED)

values

(fn_nextval('MR'),SubRuleCode1, 'DefaultType', '', 'root', MatchNodeCode1, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode2, 'DefaultType', '', 'root', MatchNodeCode2, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode3, 'DefaultType', '', 'root', MatchNodeCode3, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode4, 'DefaultType', '', 'root', MatchNodeCode4, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode5, 'DefaultType', '', 'root', MatchNodeCode5, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0)

 ;

 update common_rulematchrelation

 set LINKPROPERTYJSON=json_set(LinkPropertyJson, '$[0].MatchConditions[0].PropertyId', (select id

                                                                                        from common_listsearchproperty

                                                                                        where PropertyName = '工单类型'

                                                                                          and OrgCode = InOrgCode

                                                                                          and EntityName = '通用附件规则'#'通用附件规则'

                                                                                          and Deleted = 0))

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   and LINKPROPERTYJSON ->> '$[0].MatchConditions[0].PropertyId' = 742;

 update common_rulematchrelation

 set LinkActionsJson=json_set(LinkActionsJson,

     '$[0].Rules[0].RuleName',replace(replace(LinkActionsJson->>'$[0].Rules[0].RuleName','SRC202211064459',SubRuleCode),'MR9999999400',Id),

     '$[0].WorkflowName',replace(replace(LinkActionsJson->>'$[0].WorkflowName','SRC202211064459',SubRuleCode),'MR9999999400',Id))

 where SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and Deleted = 0;



#人员属性

     INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999058','affiliatedInstitution','一级机构','string',2,1,'"请选择"','select',1,1,'in',1,1,2,'"{ \\"url\\": \\"UserInfoManage/UserInfo/GetInstitutionalByProvider\\"}"','{}','code','name',1,InOrgCode,InOrgName,'affiliatedinstitution',1,null,now(),0),

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999057','ascription','人员归属','string',2,1,'"请选择"','select',1,1,'in,en,nn',1,1,2,'"{ \\n    \\"url\\": \\"UserInfoManage/Ascription?operateAttributes=&haveNullAscription=true\\"\\n}"','{}','','',1,InOrgCode,InOrgName,'ascription',0,null,now(),0);



 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage; #日志记录生成模块



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgRule'                             AS Logger,

        'proc_CreateOrgRule'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;

     END

proc_WorkflowBack

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack`(InOrderId char(12),InNewStatus int )
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退执行sql;





#InOrderId 订单Id

#InNewStatus 新状态值 







/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_tb_workorderinfo text ; -- 修改主表sql 

		DECLARE p_tb_workorderstatus text  ; -- 修改状态表sql

		DECLARE p_workflowruntimesteps text; -- 修改步骤表sql

		DECLARE p_workflowruntimeitems  text; -- 修改运行时主表sql

		DECLARE p_workflowruntimeactors  text; -- 修改人员表sql

		DECLARE p_tb_workflowinfo text; -- 修改工作流信息表sql

		

		SET result='';

		

		# 0 获取当前步骤和当前步骤的排序

		select c.Id,c.SortOrder into @current_step_id,@px

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

		join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

		where a.TargetEntityId=InOrderId

		and d.WorkStatus=InNewStatus

		order by c.SortOrder DESC LIMIT 1 -- 可能有多次相同步骤,取最后一次

		;

		

		

		

		 

		 #1、修改tb_workorderinfo状态

		 

	   select concat('update tb_workorderinfo set WorkStatus=',InNewStatus,' where Id="',a.Id, '";') into p_tb_workorderinfo from  tb_workorderinfo a where id=InOrderId ;		  

		 SET result=CONCAT(result,'-- tb_workorderinfo:\n',p_tb_workorderinfo,'\n');

		 

		 #2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)    

	  select 

	  concat('update tb_workorderstatus set WorkStatus=',InNewStatus,', NodeCode="',c.NodeCode,'",StepStatus="PROCESSING", StepName="',c.NodeName,'",PreStepStatus="ACCEPTED",PreStepName="',(select Name FROM workflowruntimesteps where RuntimeItemId=a.Id AND Deleted=0 and SortOrder<@px order by SortOrder desc limit 1 ),'" where WorkOrderId="', InOrderId , '" and deleted=0;') into p_tb_workorderstatus

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		join tb_workorderstatus d on a.TargetEntityId=d.WorkOrderId

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 

		and c.WorkStatus=InNewStatus;

		

		SET result=CONCAT(result,'-- tb_workorderstatus:\n',p_tb_workorderstatus,'\n');

		

		

		#3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

    



		

		

		

		select GROUP_CONCAT(`SQL语句` SEPARATOR '\n') into p_workflowruntimesteps from 

		(

			select   

			case when c.SortOrder=@px  then concat('update workflowruntimesteps set AcceptedNumber=0,	DeclinedNumber=0 ,`Status`="PROCESSING" where id ="',c.Id,'";') 

			when c.SortOrder>@px then concat('update workflowruntimesteps set deleted=1 where id ="',c.Id,'";') 

			else null  end as 'SQL语句',

			d.WorkStatus,d.NodeName,c.*    

			from workflowruntimeitems a

			join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

			join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

			join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

			where a.TargetEntityId=InOrderId		

			having SQL语句 is not null 

			order by c.SortOrder 

		)x; 

		

		SET result=CONCAT(result,'-- workflowruntimesteps:\n',p_workflowruntimesteps,'\n');	

		 

		 

		 

		 #4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

		 select concat('update workflowruntimeitems set CurrentStepId="',@current_step_id,'",Status="PROCESSING" where Id="',a.Id,'";')

		 into p_workflowruntimeitems

		 from workflowruntimeitems a where TargetEntityId=InOrderId  and Deleted=0;  	   

		 SET result=CONCAT(result,'-- workflowruntimeitems:\n',p_workflowruntimeitems,'\n'); 

		

		

		

		 #5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark) 

			set p_workflowruntimeactors=CONCAT("UPDATE `serviceordercenter`.`workflowruntimeactors` SET `Processed`=b'0',`ProcessedAt`=null,`WorkflowHandlingStatusId`=null,`Status`='PROCESSING',`Active`=b'0' ,remark=null WHERE `RuntimeStepId`='",@current_step_id,"';");

		  SET result=CONCAT(result,'-- workflowruntimeactors:\n',p_workflowruntimeactors,'\n');

	



     #6、tb_workflowinfo表删除多余步骤

		 select 

		 GROUP_CONCAT(CONCAT('update tb_workflowinfo set deleted=1 where id=',a.Id,';') SEPARATOR '\n' ) into p_tb_workflowinfo

		 from tb_workflowinfo  a where WorkOrderId=InOrderId and SortOrder>@px and deleted=0 ;

		 

		 

		 SET result=CONCAT(result,'-- tb_workflowinfo:\n',p_tb_workflowinfo,'\n');

		 

 

		 

		 











		SELECT result;



END

proc_DelHisWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoForBatch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoForBatch`(

    InBatchNo smallint

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2021-11-16 10:54:24

#Comment: 单个单已完成工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE NDeleted INT(1) DEFAULT 1;

    DECLARE OWorkOrderId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();





    select WorkOrderId into OWorkOrderId

    from serviceordercenterhis.move_hisworkorderinfo a

    where BATCHNO = InBatchNo and a.Result =0

    LIMIT 1;



    WHILE OWorkOrderId IS NOT NULL DO



        CALL proc_DelHisWorkOrderInfoBySingle(OWorkOrderId);

        update serviceordercenterhis.move_hisworkorderinfo A set A.result = 2 WHERE WorkOrderId = OWorkOrderId;



      SET OWorkOrderId=NULL;

        select WorkOrderId into OWorkOrderId

        from serviceordercenterhis.move_hisworkorderinfo a

        where BATCHNO = InBatchNo and a.Result =0

        LIMIT 1;

    end while;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'DelMoveWorkFlowForBatch'                      AS Logger,

           'proc_DelMoveWorkFlowForBatch'                 AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           sys_ErrMessage                              AS ErrMessage,

           NOW()                                       AS LogTime;

*/

END

proc_MoveHisWorkFlowBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveHisWorkFlowBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveHisWorkFlowBySingle`(InWorkOrderId varchar(12), InDeleted smallint)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022-12-05 10:54:24

#Comment: 单个单历史数据工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #start transaction ;

    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenterhis.workflowcompleteitems

    where TargetEntityId = InWorkOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InWorkOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN

        delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimeitems

        where id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimesteps

        where RuntimeItemId = ORuntimeItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowRuntimeItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (ORuntimeItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowRuntimeActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowRuntimeSteps

                                        WHERE RuntimeItemId IN (ORuntimeItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowRuntimeComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowRuntimeActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowRuntimeSteps

                                                                                    WHERE RuntimeItemId IN (ORuntimeItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowruntimeactivities

        where RuntimeItemId = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id;

      /*

        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;*/

        end if;

        if (ORuntimeItemId is null and ((SELECT ID

                                         FROM serviceordercenter.workflowcompletesteps

                                         WHERE DELETED = 0

                                           AND RuntimeItemId = OCompleteItemId

                                           AND NAME = '结束') is not null))

        then



           delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompleteitems

        where id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompletesteps

        where runtimeitemid = OcompleteItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowcompleteItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (OcompleteItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowcompleteActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowcompleteSteps

                                        WHERE RuntimeItemId IN (OcompleteItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowcompleteComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowcompleteActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowcompleteSteps

                                                                                    WHERE RuntimeItemId IN (OcompleteItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowcompleteactivities

        where RuntimeItemId = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id;

/*

        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;*/

           end if;

    IF ORuntimeItemId IS NULL  and OCompleteItemId is null THEN

        UPDATE move_workflowuserinfo a

        SET a.Remark=CONCAT(IFNULL(a.Remark, ''), '历史数据工作流中无Instance信息;')

        WHERE a.WorkOrderId = InWorkOrderId;

        SET Result = 1;

end if;

set foreign_key_checks = 1;

#返回结果

SELECT Result AS ErType, sys_ErrMessage AS ErMessage;

SET @NRESULT = Result;

update move_workflowuserinfo A

set A.result = Result,

    a.Remark=concat(IFNULL(a.Remark, ''), ' ', IFNULL(sys_ErrMessage, ''))

WHERE WorkOrderId = InWorkOrderId;



/*IF Result = 1 THEN

        ROLLBACK;

    ELSE

        COMMIT;

    END IF;*/

#日志记录生成模块

/*

INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

SELECT Result                                                 AS IsSuccess,

       'MoveHisWorkFlowBySingle'                                 AS Logger,

       'proc_MoveHisWorkFlowBySingle'                            AS ProcedureName,

       TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())            AS TimeSpan,

       sys_ErrCode                                            AS ErrCode,

       concat(InWorkOrderId, ' ', IFNULL(sys_ErrMessage, '')) AS ErrMessage,

       NOW()                                                  AS LogTime;

*/

END

proc_VhsCompletedWorkOrderInfoById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderInfoById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderInfoById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderInfoById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderinfodetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderinfodetail(workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,ReceiveState,FirstReturnAuditState,FirstReturnRejectReason

                                  )

select workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,

																			 ReceiveState, FirstReturnAuditState, FirstReturnRejectReason

	

	

	

	 from(

SELECT T.Id AS WorkOrderId,

       A.OrderType AS OrderType,

       T.CustomerName AS CustomerName,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

        b.SubjectCodeSummary as SubjectCode,

       B.SubjectNameSummary AS SubjectName,

        a.ProCode as ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       A.AreaCode AS AreaCode,

       A.AreaName AS AreaName,

       C.UserName AS UserName,

       c.UserTel as UserTel,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreateDay,

       time(a.CreatedAt) AS CreateTime,

       a.CreatedAt as CreatedAt,

       DATE_FORMAT(l.v_LastDistributeTime,'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(l.v_LastDistributeTime) AS WorkFlowAcceptTime,

       DATE_FORMAT(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime),'%Y-%m-%d') AS RecordDay,#有补录取补录,没有补录取备案

       time(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime)) AS RecordTime,

       L.v_LastRecordTime AS LastRecordTime,

       fn_GetAFCPassAuditTimeById(a.id) AS ApprovalTime,

       a.WorkStatus AS WorkStatus,

       fn_GetStatusNameByCode(a.WorkStatus) as WorkStatusName,

       T.ReceiverUserName AS ReceiverUserName,

       T.ReceiverLoginName AS ReceiverLoginName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonName,NULL) AS RecordPersonName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL) AS RecordPersonCode,

       GetAscriptionByLoginName(if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL),2) AS RecordPersonDepartName,

       M.BussinessJson->>'$.RecordPersonRoletName' AS RecordPersonRoletName,

       F.ServiceName AS ServiceName,

       F.ServiceCode AS ServiceCode,

       T.Requirements  AS Requirements ,

       T.v_vhsAppCode AS VhsAppCode,

       C.Remark AS CarRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       # 联系人	联系电话	期望办理日期	期望办理时间	改约人	改约时间	改约一级原因	改约二级原因	改约联系人	改约联系日期

       a.LinkMan as LinkMan,

       a.LinkTel as LinkTel,

       DATE_FORMAT(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime),'%Y-%m-%d') as AppointDay,

       time(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime)) as AppointTime,

       fn_GetLastAppointPersonById(a.id,2) AS AppointPerson,

       fn_GetAppointTime(a.id,4) AS AppointSubmmitTime,

       (select FailText

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointFailText,

       (select g.ApplyReason

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointApplyReason,

       (select G.ExtraJson->>'$.LinkMan'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkMan,

       (select DATE_FORMAT(G.ExtraJson->>'$.LinkTime','%Y-%m-%d')

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkTime,

       # 办理完成日期	预约办理日期	改约联系结果

       (select cast(G.ExtraJson->>'$.CompleteTime' as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointCompleteTime,

       (select cast(substr(G.ExtraJson->>'$.ScheduledDate',1,19) as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointScheduledDate,

       (select G.ExtraJson->>'$.LinkResult'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkResult,

       # 收件资料是否集齐	收件资料集齐时间	已收集材料清单	抵押权人	资金方	实际抵押权人

       if(J.IsCollectedFile=1,'是','否') AS IsCollectedFile,

       cast(substr(JSON_UNQUOTE(JSON_EXTRACT((J.ReceiveDetailJson->>'$.ReceiveLog'),

                   concat('$[',json_length(J.ReceiveDetailJson->>'$.ReceiveLog')-1,'].ReceiveTime'))),1,19) as datetime) AS ReceiveTime,

       fn_GetReceiveFileNameById(t.id) AS ReceiveFileName,

       T.Mortgagee AS Mortgagee,

       T.MortgageInfoJson->>'$.FundSide' AS FundSide,

       e.ActualMortgagor AS ActualMortgagee,

       # 买方联系人	所属分公司	所属大区	渠道	租赁类型	放款类型

       t.BuyerLinkMan as BuyerLinkMan,

       T.MortgageInfoJson->>'$.SubCompanyName' AS YXSubCompanyName,

       T.MortgageInfoJson->>'$.CompanyRegion' AS YXCompanyRegion,

       T.MortgageInfoJson->>'$.ChannelFullName' AS ChannelFullName,

       #租赁类型 放款类型

       case T.MortgageInfoJson->>'$.LeaseType' when 1 then '车主融' when 0 then '消费融' end AS LeaseType,

       case T.MortgageInfoJson->>'$.LoanType' when 0 then '先抵后放' when 1 then '先放后抵' end AS LoanType,

       #易鑫产品方案类型productSolutionType	易鑫合同状态	合同生效时间ContractEffectiveTime	第二联系人	第二联系人电话

       T.ProductSolutionType AS ProductSolutionType,

       T.ContractStatus AS ContractStatus,

       T.MortgageInfoJson->>'$.ContractEffectiveTime' AS ContractEffectiveTime,

       A.SecondLinkMan AS SecondLinkMan,

       A.SecondLinkTel AS SecondLinkTel,

       # 预计上牌地址	易鑫产品类别productCategory	快递公司名称	快递单号	收件人姓名	收件人电话	收件人地址	办理团队	办理方式	资料收齐时间

       T.LicensingPlace AS LicensingPlace,

       t.ProductCategory AS ProductCategory,

       k.ExpressJson->>'$.ExpressCompany' AS ExpressCompany,

       k.ExpressJson->>'$.ExpressNumber' AS ExpressNumber,

       k.ExpressJson->>'$.OperTel' AS ExpressOperTel,

       k.ReceiveDetailJson->>'$.ReturnName' AS ReturnName,

       k.ReceiveDetailJson->>'$.ReturnTel' AS ReturnTel,

       k.ReceiveDetailJson->>'$.ReturnAddress' AS ReturnAddress,

       E.HandlingTeamName AS HandlingTeamName,

       E.HandlingMethodName AS HandlingMethodName,

       J.CollectedTime AS CollectedTime,

       a.RequiredTime as RequiredTime,

       fn_GetAFCPassAuditTimeById(a.id) AS AuditDoneAt,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       row_number() over (partition by T.id order by n.OperateTime) as rw,

       n.OperateTime as ReturnTime,

  case k.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

	

	-- 2024-10-31新增 yft

	K.ReceiveState,

	M.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState,

	M.BussinessJson->>'$.FirstReturnRejectReason' AS FirstReturnRejectReason



	

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_recordinfo          i on a.id = i.WorkOrderId and i.Deleted = 0

LEFT JOIN tb_vhsworkfilereceiveinfo J ON T.ID = J.WorkOrderId and J.Deleted = 0 and J.ReceiveType = 1

left join tb_vhsworkfilereceiveinfo K ON T.ID = K.WorkOrderId AND K.Deleted = 0 AND K.ReceiveType = 2

left join tb_workflowjsoninfo L on t.id = l.WorkOrderId and l.Deleted = 0

left join tb_workbussinessjsoninfo M on t.id = m.WorkOrderId and m.Deleted = 0

left join tb_workoperateinfo n on t.id = n.WorkOrderId and n.Deleted=0 and n.Reason in('归还','系统自动归还')

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

    ) a

where a.rw = 1

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderInfoById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderInfoById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_MoveWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoBySingle \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoBySingle`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;





    insert into serviceordercenterhis.tb_abnormalorder_log

    select a.*

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_abnormalorder_log a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;





    insert into serviceordercenterhis.tb_workorderinfo

    select a.*

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workserviceinfo

    select a.*

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workservicesubject

    select a.*

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worksignininfo

    select a.*

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktaginfo

    select a.*

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktempinfo

    select a.*

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worksubjectsummary

    select a.*

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_auditinfo

    select a.*

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_auditinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custoperatelog

    select a.*

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custoperatelog a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;



    insert into serviceordercenterhis.tb_favoriteriskorder

    select a.*

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_favoriteriskorder a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_handleriskorder

    select a.*

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_handleriskorder a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workriskstatus

    select a.*

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workriskstatus a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatime

    select a.*

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatime a,

      tmp_singleorderid B

 WHERE a.ID = B.Id

   AND B.uuid = @UU;*/

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskhistoryorder

    select a.*

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskhistoryorder a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    insert into serviceordercenterhis.tb_riskorderbehavior_detail

    select a.*

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior_detail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskorderbehavior

    select a.*

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo

    select a.*

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderlabelinfo

    select a.*

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderlabelinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatimehis

    select a.*

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatimehis a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his  a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo_his

    select a.*

    from serviceordercenter.tb_riskworkorderinfo_his  a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo_his a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis   a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfohis

    select a.*

    from serviceordercenter.tb_riskworkorderinfohis   a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfohis  a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo    a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_workorderevaluateinfo

    select a.*

    from serviceordercenter.tb_workorderevaluateinfo    a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderevaluateinfo   a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_usedcarcheckinfo

    select a.*

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_usedcarcheckinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workaddressinfo

    select a.*

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workaddressinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workbussinessjsoninfo(Id,WorkOrderId, BussinessJson,DynamicId,InsertTime,Deleted)

    select a.Id,a.WorkOrderId, a.BussinessJson,a.DynamicId,a.InsertTime,a.Deleted

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workbussinessjsoninfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workcreditinfo

    select a.*

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workcreditinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_interactivestate

    select a.*

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_interactivestate a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_mortgageechangerecord

    select a.*

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_mortgageechangerecord a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_numdiffinfo

    select a.*

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_numdiffinfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_devicestatuslog

    select a.*

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custcolumn

    select a.*

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    insert into serviceordercenterhis.tb_appointauditinfo

    select a.*

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointment

    select a.*

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointmentconcat

    select a.*

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatedinfo

    select a.*

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatinginfo

    select a.*

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_recordinfo

    select a.*

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_paylog

    select a.*

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_remarkinfo

    select a.*

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_vindiffinfo

    select a.*

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workcarinfo

    select a.*

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeedetail

    select a.*

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeinfo

    select a.*

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeitem

    select a.*

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeremark

    select a.*

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsdetail

    select a.*

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsinfo

    select a.*

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixitemdetail

    select a.*

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixitemdetail a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixiteminfo

    select a.*

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixiteminfo a,

       tmp_singleorderid B

  WHERE a.ID = B.id

    AND B.uuid = @UU;*/



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixpartsrelation

    select a.*

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixpartsrelation a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixparts

    select a.*

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixparts a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workflowinfo

    select a.*

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workflowinfo a,

  tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workflowjsoninfo(id, workorderid, runtimeitemid, stepjson, inserttime, deleted)

    select a.id, a.workorderid, a.runtimeitemid, a.stepjson, a.inserttime, a.deleted

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workgoodsdetail

    select a.*

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_other

    select a.*

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_otherinfo

    select a.*

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_extra

    select a.*

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsinfo

    select a.*

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workinsurinfo

    select a.*

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workoperateinfo

    select a.*

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into tb_workoperationinfo

    select a.*

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderrelation

    select a.*

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worknewcarinfo

    select a.*

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderstatus

    select a.*

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpolicyeffdate

    select a.*

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpriceedit_log

    select a.*

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workprivatephone

    select a.*

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.basic_resourceitem

    select a.*

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workresourceinfo

    select a.*

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

  delete a

  from serviceordercenter.tb_workresourceinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;

    */



    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workrevisedetail

    select a.*

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

    delete a from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

     */



    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workreviseinfo

    select a.*

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */



    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;

    insert into serviceordercenterhis.tb_workaftersaleinfo

    select a.*

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */

 set @OrderDelted = (select Deleted from tb_workorderinfo where id = InOrderId);

 call proc_MoveHisWorkFlowBySingle(InOrderId,@OrderDelted);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'MoveWorkOrderInfoBySingle'               AS Logger,

           'proc_MoveWorkOrderInfoBySingle'          AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;*/



END

proc_WorkflowBack_pre

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack_pre \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack_pre`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退(先查询)





/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_status_now varchar(10) ; -- 当前状态 

		DECLARE p_workflow_name varchar(100) ; -- 工作流名称

		DECLARE p_status_all varchar(5000) ; -- 所有状态和节点定义

		DECLARE p_steps varchar(5000) ; -- 步骤列表

		SET result='';

		 

		

		

		SELECT WorkStatus INTO p_status_now FROM tb_workorderinfo WHERE Id=InOrderId;

		SET result=CONCAT(result,'当前状态:',IFNULL(p_status_now,''),'\n');

		

		

		SELECT b.`Name` INTO p_workflow_name  FROM workflowruntimeitems a,workflowitems b where a.WorkflowItemId=b.Id and a.TargetEntityId=InOrderId and a.deleted=0 and b.deleted=0 limit 1;

		SET result=CONCAT(result,'工作流名称:',IFNULL(p_workflow_name,''),'\n');

	

	  

		

		select GROUP_CONCAT(concat('WorkStatus:',WorkStatus,' WorkStatusName:',WorkStatusName,' WorkFlowCode:',WorkFlowCode,' WorkFlowName:',WorkFlowName,' NodeCode:(',NodeCode,') NodeName:',NodeName) ORDER BY c.WorkStatus SEPARATOR '\n') into p_status_all

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		

		 SET result=CONCAT(result,'所有状态和节点定义:\n',IFNULL(p_status_all,''),'\n');

 

	

	  select 

		GROUP_CONCAT(concat('排序:',c.SortOrder,' 节点:',c.name,' 运行状态:',ifnull(d.`Status`,'--'),' 运行时步骤Id:',ifnull(d.Id,''))  ORDER BY c.sortorder SEPARATOR '\n')

		into p_steps

	  from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join workflownodes c on b.Id=c.WorkflowItemId and c.deleted=0

		left join workflowruntimesteps d on a.Id=d.RuntimeItemId and d.WorkflowNodeId=c.Id  and d.deleted=0 

	  where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		 

		 

		  

		 SET result=CONCAT(result,'步骤列表:\n',IFNULL(p_steps,''),'\n');





		 

		

		SELECT result;



END

proc_VhsCompletedWorkOrderInfoById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderInfoById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderInfoById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderInfoById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderinfodetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderinfodetail(workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,ReceiveState,FirstReturnAuditState,FirstReturnRejectReason

                                  )

select workorderid, ordertype, customername, subcompanyname, appcode, SubjectCode,subjectname,

                                      ProCode,proname,CityCode, cityname,AreaCode,AreaName, username, usertel, platenumber, vinnumber, createday,

                                      createtime, createdat, workflowacceptday, workflowaccepttime, recordday,

                                      recordtime, lastrecordtime, approvaltime, workstatus, workstatusname, receiverusername,

                                      receiverloginname, recordpersonname, recordpersoncode, recordpersondepartname,

                                      recordpersonroletname, servicename, servicecode, requirements, vhsappcode, carremark,

                                      serviceremark, checkremark, linkman, linktel, appointday, appointtime, appointperson,

                                      appointsubmmittime, appointfailtext, appointapplyreason, appointlinkman,AppointLinkTime,

                                      appointcompletetime, appointscheduleddate, appointlinkresult, iscollectedfile, receivetime,

                                      receivefilename, mortgagee, fundside, actualmortgagee, buyerlinkman, yxsubcompanyname,

                                      yxcompanyregion, channelfullname, leasetype, loantype, productsolutiontype, contractstatus,

                                      contracteffectivetime, secondlinkman, secondlinktel, licensingplace, productcategory, expresscompany,

                                      expressnumber,ExpressOperTel, returnname, returntel, returnaddress, handlingteamname, handlingmethodname,

                                      collectedtime, requiredtime, auditdoneat, inserttime, deleted,ReturnTime,ActualReceiveMethod,

																			 ReceiveState, FirstReturnAuditState, FirstReturnRejectReason

	

	

	

	 from(

SELECT T.Id AS WorkOrderId,

       A.OrderType AS OrderType,

       T.CustomerName AS CustomerName,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

        b.SubjectCodeSummary as SubjectCode,

       B.SubjectNameSummary AS SubjectName,

        a.ProCode as ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       A.AreaCode AS AreaCode,

       A.AreaName AS AreaName,

       C.UserName AS UserName,

       c.UserTel as UserTel,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreateDay,

       time(a.CreatedAt) AS CreateTime,

       a.CreatedAt as CreatedAt,

       DATE_FORMAT(l.v_LastDistributeTime,'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(l.v_LastDistributeTime) AS WorkFlowAcceptTime,

       DATE_FORMAT(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime),'%Y-%m-%d') AS RecordDay,#有补录取补录,没有补录取备案

       time(ifnull(L.v_LastAddRecordTime,L.v_LastRecordTime)) AS RecordTime,

       L.v_LastRecordTime AS LastRecordTime,

       fn_GetAFCPassAuditTimeById(a.id) AS ApprovalTime,

       a.WorkStatus AS WorkStatus,

       fn_GetStatusNameByCode(a.WorkStatus) as WorkStatusName,

       T.ReceiverUserName AS ReceiverUserName,

       T.ReceiverLoginName AS ReceiverLoginName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonName,NULL) AS RecordPersonName,

       if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL) AS RecordPersonCode,

       GetAscriptionByLoginName(if(I.RecordPersonCode IS NOT NULL,L.v_LastRecordPersonCode,NULL),2) AS RecordPersonDepartName,

       M.BussinessJson->>'$.RecordPersonRoletName' AS RecordPersonRoletName,

       F.ServiceName AS ServiceName,

       F.ServiceCode AS ServiceCode,

       T.Requirements  AS Requirements ,

       T.v_vhsAppCode AS VhsAppCode,

       C.Remark AS CarRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       # 联系人	联系电话	期望办理日期	期望办理时间	改约人	改约时间	改约一级原因	改约二级原因	改约联系人	改约联系日期

       a.LinkMan as LinkMan,

       a.LinkTel as LinkTel,

       DATE_FORMAT(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime),'%Y-%m-%d') as AppointDay,

       time(ifnull(fn_GetAppointTime(a.id,3),a.RequiredTime)) as AppointTime,

       fn_GetLastAppointPersonById(a.id,2) AS AppointPerson,

       fn_GetAppointTime(a.id,4) AS AppointSubmmitTime,

       (select FailText

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointFailText,

       (select g.ApplyReason

           from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) as AppointApplyReason,

       (select G.ExtraJson->>'$.LinkMan'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkMan,

       (select DATE_FORMAT(G.ExtraJson->>'$.LinkTime','%Y-%m-%d')

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkTime,

       # 办理完成日期	预约办理日期	改约联系结果

       (select cast(G.ExtraJson->>'$.CompleteTime' as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointCompleteTime,

       (select cast(substr(G.ExtraJson->>'$.ScheduledDate',1,19) as datetime )

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointScheduledDate,

       (select G.ExtraJson->>'$.LinkResult'

       from tb_appointment G

           where g.deleted = 0 and t.id = g.WorkOrderId

           order by CreatedAt desc

           limit 1) AS AppointLinkResult,

       # 收件资料是否集齐	收件资料集齐时间	已收集材料清单	抵押权人	资金方	实际抵押权人

       if(J.IsCollectedFile=1,'是','否') AS IsCollectedFile,

       cast(substr(JSON_UNQUOTE(JSON_EXTRACT((J.ReceiveDetailJson->>'$.ReceiveLog'),

                   concat('$[',json_length(J.ReceiveDetailJson->>'$.ReceiveLog')-1,'].ReceiveTime'))),1,19) as datetime) AS ReceiveTime,

       fn_GetReceiveFileNameById(t.id) AS ReceiveFileName,

       T.Mortgagee AS Mortgagee,

       T.MortgageInfoJson->>'$.FundSide' AS FundSide,

       e.ActualMortgagor AS ActualMortgagee,

       # 买方联系人	所属分公司	所属大区	渠道	租赁类型	放款类型

       t.BuyerLinkMan as BuyerLinkMan,

       T.MortgageInfoJson->>'$.SubCompanyName' AS YXSubCompanyName,

       T.MortgageInfoJson->>'$.CompanyRegion' AS YXCompanyRegion,

       T.MortgageInfoJson->>'$.ChannelFullName' AS ChannelFullName,

       #租赁类型 放款类型

       case T.MortgageInfoJson->>'$.LeaseType' when 1 then '车主融' when 0 then '消费融' end AS LeaseType,

       case T.MortgageInfoJson->>'$.LoanType' when 0 then '先抵后放' when 1 then '先放后抵' end AS LoanType,

       #易鑫产品方案类型productSolutionType	易鑫合同状态	合同生效时间ContractEffectiveTime	第二联系人	第二联系人电话

       T.ProductSolutionType AS ProductSolutionType,

       T.ContractStatus AS ContractStatus,

       T.MortgageInfoJson->>'$.ContractEffectiveTime' AS ContractEffectiveTime,

       A.SecondLinkMan AS SecondLinkMan,

       A.SecondLinkTel AS SecondLinkTel,

       # 预计上牌地址	易鑫产品类别productCategory	快递公司名称	快递单号	收件人姓名	收件人电话	收件人地址	办理团队	办理方式	资料收齐时间

       T.LicensingPlace AS LicensingPlace,

       t.ProductCategory AS ProductCategory,

       k.ExpressJson->>'$.ExpressCompany' AS ExpressCompany,

       k.ExpressJson->>'$.ExpressNumber' AS ExpressNumber,

       k.ExpressJson->>'$.OperTel' AS ExpressOperTel,

       k.ReceiveDetailJson->>'$.ReturnName' AS ReturnName,

       k.ReceiveDetailJson->>'$.ReturnTel' AS ReturnTel,

       k.ReceiveDetailJson->>'$.ReturnAddress' AS ReturnAddress,

       E.HandlingTeamName AS HandlingTeamName,

       E.HandlingMethodName AS HandlingMethodName,

       J.CollectedTime AS CollectedTime,

       a.RequiredTime as RequiredTime,

       fn_GetAFCPassAuditTimeById(a.id) AS AuditDoneAt,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       row_number() over (partition by T.id order by n.OperateTime) as rw,

       n.OperateTime as ReturnTime,

  case k.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

	

	-- 2024-10-31新增 yft

	K.ReceiveState,

	M.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState,

	M.BussinessJson->>'$.FirstReturnRejectReason' AS FirstReturnRejectReason



	

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_recordinfo          i on a.id = i.WorkOrderId and i.Deleted = 0

LEFT JOIN tb_vhsworkfilereceiveinfo J ON T.ID = J.WorkOrderId and J.Deleted = 0 and J.ReceiveType = 1

left join tb_vhsworkfilereceiveinfo K ON T.ID = K.WorkOrderId AND K.Deleted = 0 AND K.ReceiveType = 2

left join tb_workflowjsoninfo L on t.id = l.WorkOrderId and l.Deleted = 0

left join tb_workbussinessjsoninfo M on t.id = m.WorkOrderId and m.Deleted = 0

left join tb_workoperateinfo n on t.id = n.WorkOrderId and n.Deleted=0 and n.Reason in('归还','系统自动归还')

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

    ) a

where a.rw = 1

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderInfoById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderInfoById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_HomeDataGenerator

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeDataGenerator \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeDataGenerator`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 智能工单大屏_数据汇总
#CreatedAt: 2023年09月05日08:38:35

  #日志记录定义模块
  DECLARE InDate DATE DEFAULT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
  DECLARE EndDate DATE DEFAULT CURDATE();
  # 今天 CURDATE()
  # 昨天 DATE_ADD(CURDATE(), INTERVAL -1 DAY)
  # 上周一 DATE_ADD(CURDATE(), INTERVAL -7 DAY)
  # 上月1号
  # 去年1月1日
  # 前年1月1日
  DECLARE sys_StartTime  DATETIME;
  DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
  DECLARE sys_ErrMessage VARCHAR(200);
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
  BEGIN GET DIAGNOSTICS CONDITION 1
  sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
  END;
  SET sys_StartTime = CURRENT_TIMESTAMP();

  # 每日
  # 生成基础数据
  call proc_HomeUserArea();
  call proc_HomeOrderdetail(InDate, EndDate);

  ### 大屏地图
  TRUNCATE TABLE home_usermapdaily;
  # 省份
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,1,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.ProCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;
  # 区县
  INSERT INTO home_usermapdaily(ProviderCode,AreaType,AreaCode,ALng,ALat,ServicerCnt)
  SELECT ProviderCode,3,a.AreaCode,b.ALng,b.ALat,
         COUNT(DISTINCT LoginName) AS ServicerCnt
  FROM home_userarea a
  INNER JOIN home_areageo b
    ON b.AreaCode=a.AreaCode
  WHERE a.Ascription IN (0, 2, 3, 4)
    AND a.CheckDate=CURDATE()
  GROUP BY a.ProviderCode,b.AreaCode;

  # 工单类型 自有服务 三方服务 人员数量
  TRUNCATE TABLE home_usermapdetail;

  DROP TABLE IF EXISTS tm_usermapdetail;
  CREATE TABLE tm_usermapdetail (
  Id bigint unsigned auto_increment comment '自增主键' primary key,
  ProviderCode  varchar(50)                        null comment '服务商编码',
  OrderTypeName varchar(100)                       null comment '工单类型',
  ProCode       varchar(50)                        null comment '区域编码',
  CityCode      varchar(50)                        null comment '区域编码',
  AreaCode      varchar(50)                        null comment '区域编码',
  Ascription    varchar(100)                       null comment '人员归属(0外勤、1内勤、2优工、3特工-外访、4特工-催收)',
  LoginName     varchar(50)                        null comment '人员姓名',
  KEY `1` (OrderTypeName),
  KEY `2` (ProviderCode),
  KEY `3` (ProCode),
  KEY `4` (CityCode),
  KEY `5` (AreaCode));

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea
  WHERE OrderTypeName<>'适用全部'
    AND CheckDate=CURDATE();

  INSERT INTO tm_usermapdetail(ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName)
  SELECT M.ProviderCode,N.OrderTypeName,M.ProCode,M.CityCode,M.AreaCode,M.Ascription,M.LoginName
  FROM (SELECT ProviderCode,OrderTypeName,ProCode,CityCode,AreaCode,Ascription,LoginName
  FROM home_userarea A
  WHERE OrderTypeName='适用全部'
    AND CheckDate=CURDATE()) M
  CROSS JOIN (SELECT DISTINCT OrderTypeName
              FROM home_userarea
              WHERE OrderTypeName<>'适用全部'
                AND CheckDate=CURDATE()) N;

  # 汇总写入正式表--省份
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,ProCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,ProCode;

  # 汇总写入正式表--城市
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,CityCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,CityCode;

  # 汇总写入正式表--区域
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,1,AreaCode,
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName,AreaCode;

  # 汇总写入正式表--全部
  INSERT INTO home_usermapdetail(ProviderCode,OrderTypeName,AreaType,AreaCode,SelfCnt,OtherCnt)
  SELECT ProviderCode,OrderTypeName,0,'ALL',
         COUNT(DISTINCT(IF(Ascription IN (0, 1),LoginName,''))) - 1 AS SelfCnt,
         COUNT(DISTINCT(IF(Ascription NOT IN (0, 1),LoginName,''))) - 1 AS OtherCnt
  FROM tm_usermapdetail
  GROUP BY ProviderCode,OrderTypeName;
  DROP TABLE IF EXISTS tm_usermapdetail;

  ### 服务网络 时间维度: 上月,上周,昨日,今年
  ## 单据
  # 上月
  IF DAY(NOW()) = 1 THEN
  DELETE FROM home_ordercount WHERE DateType=1;
  # 下单量
  INSERT INTO home_ordercount(ProviderCode,ProCode,DateType,CreateCnt)
  SELECT ProviderCode,ProCode,1,
         COUNT(DISTINCT WorkOrderId) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND A.DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime10
    AND A.DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime10
    AND DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime10
    AND DetailTime>=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -7 DAY)
    AND A.DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND DetailTime=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
    AND A.DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND DetailTime=DATE_FORMAT(NOW(),'%Y-01-01')
    AND A.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND a.DetailTime=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -3 MONTH),'%Y-%m-01')
    AND a.DetailTime10) AS s
  GROUP BY s.ProviderCode,s.ProCode;

  ### 下单数量变化趋势
  # 去年、今年 每月下单量对比 (需要额外初始化数据)
  # 清理单据
  IF DAYOFMONTH(NOW()) = 1 AND DAY(NOW()) = 1 THEN
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 YEAR),'%Y-01-01')
    AND OrderType='ALL';
  DELETE
  FROM home_ordercreatetrend
  WHERE CONCAT(CheckYear,'-',CheckMonth,'-01') < CONCAT(YEAR(CURDATE()), '01-01')
    AND OrderType!='ALL';
  END IF;
  DELETE
  FROM home_ordercreatetrend
  WHERE CheckYear = YEAR(CURDATE())
    AND CheckMonth = MONTH(CURDATE());

  UPDATE home_ordercreatetrend A,
  (SELECT ProviderCode,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,DATE_FORMAT(DetailTime,'%Y-%m')) B
  SET A.CreateCnt=B.CreateCnt
  WHERE A.ProviderCode=B.ProviderCode
    AND A.OrderType='ALL'
    AND A.CheckYear=B.CheckYear
    AND A.CheckMonth=B.CheckMonth;
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT A.ProviderCode,
         'ALL' AS OrderType,
         COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily A
  WHERE A.DetailType=1
    AND A.DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND A.DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
    AND NOT EXISTS(SELECT 1
                   FROM home_ordercreatetrend B
                   WHERE A.ProviderCode=B.ProviderCode
                     AND A.OrderType='ALL'
                     AND B.CheckYear=YEAR(A.DetailTime)
                     AND B.CheckMonth=MONTH(A.DetailTime))
  GROUP BY A.ProviderCode,YEAR(A.DetailTime),MONTH(A.DetailTime);

  # 写Json
  DELETE FROM home_viewdata WHERE DataType=3;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 3, S.ProviderCode,
         JSON_OBJECT("categories", JSON_ARRAY("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"),
          "series",JSON_ARRAY(JSON_OBJECT("name", "去年", "data", JSON_ARRAYAGG(LastYearCnt)),
                              JSON_OBJECT("name", "今年", "data", JSON_ARRAYAGG(ThisYearCnt))
                      )
          )
  FROM (
  SELECT M.ProviderCode,M.Monthy,
    MAX(IF(M.Year=(YEAR(CURDATE())-1),M.CreateCnt,0)) AS LastYearCnt,
    MAX(IF(M.Year=YEAR(CURDATE()),M.CreateCnt,0)) AS ThisYearCnt
  FROM (
  SELECT PC.ProviderCode,H.Monthy,Y.Year,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
  SELECT 1 AS Monthy UNION
  SELECT 2 UNION
  SELECT 3 UNION
  SELECT 4 UNION
  SELECT 5 UNION
  SELECT 6 UNION
  SELECT 7 UNION
  SELECT 8 UNION
  SELECT 9 UNION
  SELECT 10 UNION
  SELECT 11 UNION
  SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_ordercreatetrend P
  WHERE P.OrderType='ALL'
  AND P.OrderType IS NOT NULL
  AND P.ProviderCode<>''
  AND P.CheckYear IN (YEAR(CURDATE()),YEAR(CURDATE()) - 1)
  GROUP BY P.ProviderCode) AS PC
  CROSS JOIN (SELECT YEAR(CURDATE()) AS Year UNION
  SELECT (YEAR(CURDATE()) - 1)) Y
  LEFT JOIN home_ordercreatetrend D
    ON D.ProviderCode=PC.ProviderCode
    AND D.CheckMonth=H.Monthy
    AND D.CheckYear=Y.Year
    AND D.OrderType='ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
  GROUP BY PC.ProviderCode,H.Monthy,Y.Year) AS M
  GROUP BY M.ProviderCode, M.Monthy
  ORDER BY 1,2
  ) AS S
  GROUP BY S.ProviderCode;
  ### 各工单类型下单明细
  # 家充桩安装、公桩巡检、公桩维修、公桩保养
  INSERT INTO home_ordercreatetrend(ProviderCode,OrderType,CreateCnt,CheckYear,CheckMonth)
  SELECT ProviderCode,OrderType,COUNT(1) AS CreateCnt,
         YEAR(DetailTime) AS CheckYear,
         MONTH(DetailTime) AS CheckMonth
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=DATE_FORMAT(CURDATE(),'%Y-%m-01')
    AND DetailTime>DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH),'%Y-%m-01')
  GROUP BY ProviderCode,OrderType,YEAR(DetailTime),MONTH(DetailTime);
  
  #写Json
  DELETE FROM home_viewdata WHERE DataType=4;
  INSERT INTO home_viewdata(DataType, ProviderCode, JsonValue)
  SELECT 4, M.ProviderCode,
         JSON_OBJECT("categories",
             JSON_ARRAY("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"),
             "series",JSON_ARRAYAGG(JSON_OBJECT("name", M.TypeName, "data", M.CreateCnt)))
  FROM (SELECT S.ProviderCode,S.TypeName,JSON_ARRAYAGG(S.CreateCnt) AS CreateCnt
  FROM (SELECT PC.ProviderCode,H.Monthy,T.TypeName,SUM(IFNULL(D.CreateCnt,0)) AS CreateCnt
  FROM (
    SELECT 1 AS Monthy UNION
    SELECT 2 UNION
    SELECT 3 UNION
    SELECT 4 UNION
    SELECT 5 UNION
    SELECT 6 UNION
    SELECT 7 UNION
    SELECT 8 UNION
    SELECT 9 UNION
    SELECT 10 UNION
    SELECT 11 UNION
    SELECT 12) AS H
  CROSS JOIN (SELECT P.ProviderCode
    FROM home_ordercreatetrend P
    WHERE P.OrderType<>'ALL'
    AND P.OrderType IS NOT NULL
    AND P.ProviderCode<>''
    AND P.CheckYear=YEAR(CURDATE())
    GROUP BY P.ProviderCode) AS PC
  LEFT JOIN basic_ordertypeinfo T
    ON T.ServiceProviderCode=PC.ProviderCode
    AND T.Deleted=0
  LEFT JOIN home_ordercreatetrend D
    ON D.OrderType<>'ALL'
    AND D.OrderType IS NOT NULL
    AND D.ProviderCode<>''
    AND PC.ProviderCode=D.ProviderCode
    AND D.OrderType=T.TypeCode
    AND D.CheckYear=YEAR(CURDATE())
    AND D.CheckMonth=H.Monthy
  WHERE H.Monthy<=MONTH(CURDATE())
  GROUP BY PC.ProviderCode,H.Monthy,T.TypeName
  ORDER BY 1,2) AS S
  GROUP BY S.ProviderCode,S.TypeName) AS M
  GROUP BY M.ProviderCode;
  
  END IF;
  ### 累计下单客户TOP10(日更)
  # 客户下单量、占比
  TRUNCATE TABLE home_ordercusttop;
  INSERT INTO home_ordercusttop(ProviderCode,CustomerName,CreateCnt,TotalCnt)
  SELECT S.ProviderCode,S.CustomerName,S.CreateCnt,S.TotalCnt
  FROM (
  SELECT x.ProviderCode,x.CustomerName,
         x.CreateCnt,y.TotalCnt,
         ROW_NUMBER() OVER(PARTITION BY x.ProviderCode ORDER BY x.CreateCnt DESC) AS Num
  FROM (
  SELECT ProviderCode,CustomerName,
         COUNT(1) AS CreateCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode,CustomerName) AS x
  INNER JOIN (
  SELECT ProviderCode,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=1
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode) y
    ON x.ProviderCode=y.ProviderCode) AS S
  WHERE S.Num<=10;

  ### TOP3客户近6个月下单趋势 (日更)
  TRUNCATE TABLE home_ordercusttrend;
  INSERT INTO home_ordercusttrend(ProviderCode,CustomerName,CreateCnt,CheckMonth)
  SELECT a.ProviderCode,a.CustomerName,COUNT(1) AS CreateCnt,
         DATE_FORMAT(a.DetailTime,'%Y-%m') AS CheckMonth
  FROM home_orderdetaildaily a,
       (SELECT c.ProviderCode,c.CustomerName,
               ROW_NUMBER() OVER(PARTITION BY c.ProviderCode ORDER BY c.CreateCnt DESC) AS Num
       FROM
       (SELECT b.ProviderCode,b.CustomerName,COUNT(1) AS CreateCnt
        FROM home_orderdetaildaily b
        WHERE b.CheckDate=CURDATE()
        GROUP BY b.ProviderCode,b.CustomerName ) c) d
  WHERE a.DetailType=1
    AND a.DetailTime>=DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -6 MONTH),'%Y-%m-01')
    AND a.DetailTime10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 关闭工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,3,
         COUNT(1) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=11
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 质检驳回工单总量
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,4,
         COUNT(DISTINCT WorkOrderId) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=8
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务客户总数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,5,
         COUNT(DISTINCT CustomerName) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 服务施工人数
  INSERT INTO home_ordertotalcnt(ProviderCode, CntType, CntNum)
  SELECT ProviderCode,6,
         COUNT(DISTINCT ServiceCode) AS TotalCnt
  FROM home_orderdetaildaily
  WHERE DetailType=10
    AND WorkStatus<>10
    AND DetailTime<=CURDATE()
  GROUP BY ProviderCode;
  # 写入Json
  DELETE FROM home_viewdata WHERE DataType = 1;
  INSERT INTO home_viewdata(DataType,ProviderCode,JsonValue)
  SELECT 1, ProviderCode, JSON_ARRAYAGG(S.J) AS data
    FROM (
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "下单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=1
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "完成工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=2
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "关闭工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=3
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "质检驳回工单总量",
        "value", IFNULL(CntNum,0),
        "suffixText", "单") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=4
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务客户总数",
        "value", IFNULL(CntNum,0),
        "suffixText", "个") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=5
    UNION
    SELECT ProviderCode,JSON_OBJECT("backgroundColor", "rgba(55, 137, 224, 0.2)",
        "prefixText", "服务施工人数",
        "value", IFNULL(CntNum,0),
        "suffixText", "人") AS J
    FROM home_ordertotalcnt
    WHERE ProviderCode = '1001'
      AND CntType=6) AS S
    GROUP BY S.ProviderCode;

  ### 近1周作业结束时间段分布
  TRUNCATE TABLE home_worktimetrend;
  # 工作日、非工作日
  INSERT INTO home_worktimetrend(ProviderCode, WorkHour, WorkDayCnt, WeekendCnt)
  SELECT PC.ProviderCode,H.WorkHour,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),0,1))) AS WorkDayCnt,
    IF(D.DetailTime IS NULL,0,SUM(IF(DAYOFWEEK(D.DetailTime) IN (0, 6),1,0))) AS WeekendCnt
  FROM (
  SELECT 2 AS WorkHour UNION
  SELECT 4 UNION
  SELECT 6 UNION
  SELECT 8 UNION
  SELECT 10 UNION
  SELECT 12 UNION
  SELECT 14 UNION
  SELECT 16 UNION
  SELECT 18 UNION
  SELECT 20 UNION
  SELECT 22 UNION
  SELECT 24) AS H
  CROSS JOIN (SELECT P.ProviderCode
  FROM home_orderdetaildaily P
  WHERE P.DetailType=4
  AND P.DetailTime<=DATE_ADD(CURDATE(),INTERVAL -7 DAY)
  AND P.DetailTime
                

proc_AFCReportStatisticsDaily

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AFCReportStatisticsDaily \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AFCReportStatisticsDaily`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AFCReportStatisticsDaily`()
    COMMENT 'AFC统计分析工单明细报表'
BEGIN

#Create: 2021年04月12日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE Result INT(1) DEFAULT 0;



	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



  TRUNCATE TABLE rp_afcworkorderdetail_statistics;



  #开启事务

  START TRANSACTION;



	INSERT INTO rp_afcworkorderdetail_statistics (MainWorkOrderId,WorkOrderId,SubjectCode,SubjectName,

  WorkStatus,ServiceCode,ServiceName,VisitorRole,ServiceProCode,ServiceProName,ProCode,ProName,CustomerId,

  CustomerName,CustSettleId,CustSettleName, CustomerCommitmentDate,RequiredTime,StateCycle,LastRecordTime,

  LastAssignTime,RecordingDuration,AuditRejectState,TotalDistance,RoadBridgePrice,Accommodation,

  TotalOilPrice,TotalInTrafficPrice,RefundPrice,Achievements,Amount,ReceiveAmounts,BaseSalary,IsAddressTrue,

  IsSecondLink,ApprovalResult,IsSceneHandle,OverdueDays,OverduePrincipal,RetreatTime,ReturnedResult,FollowFrequency)



	SELECT t3.RelateId AS MainWorkOrderId,t2.Id AS WorkOrderId,t4.SubjectCode AS SubjectCode,

  t4.SubjectName AS SubjectName,t2.WorkStatus AS WorkStatus,t5.ServiceCode AS ServiceCode,

  t5.ServiceName AS ServiceName,m.VisitorRole AS VisitorRole,



	(

		SELECT t2.ProCode

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

	    AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	)AS ServiceProCode,



	(

		SELECT t2.ProName

		FROM tb_userinfo AS t1

		INNER JOIN tb_userdetail AS t2

		ON t2.Id = t1.Id

		WHERE t1.Deleted = 0

		AND t1.TeamCode = '10020001'

		AND t1.LoginName = t5.ServiceCode

		LIMIT 1

	) AS ServiceProName,

	t2.ProCode AS ProCode,t2.ProName AS ProName,t2.CustomerId AS CustomerId,t2.CustomerName AS CustomerName,

  t2.CustSettleId AS CustSettleId,t2.CustSettleName AS CustSettleName,

	if((cast(json_extract(m.RecordJson, '$.CustomerCommitmentDate') as char charset utf8mb4) <> 'null'),

  CAST(LEFT(json_unquote(json_extract(m.RecordJson, '$.CustomerCommitmentDate')),10) AS date),NULL) AS CustomerCommitmentDate,

	t2.RequiredTime AS RequiredTime,

	#质检中11,质检驳回12,已完成9,等待工程师接单4,已出发13,已到达14,15,已接单6,

	fn_GetAfcStateCycleById(t2.Id) AS StateCycle,

	fn_GetAFCLastRecordTimeById(t2.Id) AS LastRecordTime,

	fn_GetAfcLastDispatcherTimeById(t2.Id) AS LastAssignTime,

	(SELECT SUM(Duration) FROM tb_workresourceinfo a

			WHERE  a.WorkOrderId = t1.Id

			AND a.SourceType = 4

			AND a.Duration IS NOT NULL

			AND a.Deleted = 0

	) AS RecordingDuration,

	IF (fn_GetAFCServiceAuditTimesById(t1.Id) > 0, 1, 0)AS AuditRejectState,

	(t1.ReimbursableDistance + t1.AdjustReimbursableDistance + t1.ReturnDistance) AS TotalDistance,

	k1.FeeValue AS RoadBridgePrice,

	k2.FeeValue AS Accommodation,

	(IFNULL(k3.FeeValue,0) + IFNULL(k4.FeeValue,0)) AS TotalOilPrice,

	(IFNULL(k5.FeeValue,0) + IFNULL(k6.FeeValue,0)) AS TotalInTrafficPrice,

  IFNULL(k9.FeeValue,0) AS RefundPrice,

	k7.FeeValue AS Achievements,

	t10.Amount AS Amount,

	k8.FeeValue AS ReceiveAmounts,

	IF(t12.ProCode = '520000',100,85) AS BaseSalary,

	CASE m.RecordJson -> '$.AddressInfoTopCode'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsAddressTrue,

	#是否复联

	#base地址省份对应的外访人的派单机构中

    #1、子单状态为【已完成】【质检中】【质检驳回】

    #2、服务科目【面访谈判】

    #3、满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一种为【可联】即为复联的主单数量

    #上汽客户逻辑:满足服务信息中【是否新增有效联系方式】为【是】或现场拨打电话情况 客户&联系人有一个联系结果为【接通】

            if(

                   (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult') is not null),

                   (if((1 member of (json_extract(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),1,

                       if((1 member of (json_extract(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),1,

                          if(1 member of (json_extract(m.RecordJson, '$.IsOtherAccess')),1,0)))

                       ),

                   (if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 0),

                       if((json_extract(m.RecordJson, '$.CustomerIsContact') = 0),

                          if((json_extract(m.RecordJson, '$.IsOtherAccess') = 0), 0, 1), 1),

                       if((json_extract(m.RecordJson, '$.LinkmanIsContact') = 1), 1, NULL)))) AS IsSecondLink,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    LIMIT 1)=1,1,0) AS ApprovalResult,

	#是否现场处理IsSiteTreatment

	CASE m.RecordJson -> '$.IsSiteTreatment'

	WHEN '0' THEN 0

	WHEN '1' THEN 1

	ELSE NULL

	END	AS IsSceneHandle,

	t11.OverdueDays AS OverdueDays,

  t11.OverduePrincipal AS OverduePrincipal,

	t11.RetreatTime AS RetreatTime,

  IF((SELECT 1

    FROM tb_afcpaymentreport t13

    WHERE t13.Deleted=0

    AND t13.WorkOrderId=t1.Id

    AND t13.ApprovalStatus IN (2,3)

    AND t13.ReturnedTypeCode IN ('ReturnType002','ReturnType003','ReturnType005')

    LIMIT 1)=1,1,0) AS ReturnedResult,

	t13.v_FollowFrequency as FollowFrequency

	FROM tb_afcworkorderinfo AS t1

	LEFT JOIN tb_workorderinfo AS t2

	  ON t1.Id = t2.Id

	  AND t2.Deleted = 0

	LEFT JOIN tb_workorderrelation AS t3

	  ON t3.WorkOrderId = t1.Id

	  AND t3.Deleted = 0

	LEFT JOIN tb_workservicesubject AS t4

	  ON t4.WorkOrderId = t1.Id

	  AND t4.Deleted = 0

	LEFT JOIN tb_workserviceinfo AS t5

	  ON t5.WorkOrderId = t1.Id

	  AND t5.Deleted = 0

  left join tb_afcfeedetail k1

    on k1.WorkOrderId= t2.Id

    and k1.Deleted= 0

    and k1.PriceTypeCode= 'RoadBridgePrice'

	left join tb_afcfeedetail k2

    on k2.WorkOrderId= t2.Id

    and k2.Deleted= 0

    and k2.PriceTypeCode= 'Accommodation'

	#油费

	left join tb_afcfeedetail k3

    on k3.WorkOrderId= t2.Id

    and k3.Deleted= 0

    and k3.PriceTypeCode= 'OilPrice'

	#油补

	left join tb_afcfeedetail k4

    on k4.WorkOrderId= t2.Id

	  and k4.Deleted= 0

	  and k4.PriceTypeCode= 'OilSubsidy'

	#公共交通费

	left join tb_afcfeedetail k5

    on k5.WorkOrderId= t2.Id

	  and k5.Deleted= 0

	  and k5.PriceTypeCode= 'InTrafficPrice'

	#打车费

	left join tb_afcfeedetail k6

    on k6.WorkOrderId= t2.Id

	  and k6.Deleted= 0

	  and k6.PriceTypeCode= 'TaxiFare'

	left join tb_afcfeedetail k7

    on k7.WorkOrderId= t2.Id

    and k7.Deleted= 0

    and k7.PriceTypeCode= 'Achievements'

	left join tb_afcfeedetail k8

    on k8.WorkOrderId= t2.Id

    and k8.Deleted= 0

    and k8.PriceTypeCode= 'ReceiveAmounts'

  #入账金额

  left join tb_afcfeedetail k9

    on k9.WorkOrderId= t2.Id

    and k9.Deleted= 0

    and k9.PriceTypeCode= 'RefundPrice'

	left join tb_afcfeeinfo as t10

	  on t10.WorkOrderId = t1.Id

	  and t10.Deleted = 0

	left join tb_afcworkfinancerecord m

	  on m.WorkOrderId = t2.Id

	  and m.Deleted = 0

	left join tb_afcworkfinanceinfo as t11

	  on t11.WorkOrderId = t1.Id

	  and t11.Deleted = 0

	left join tb_workaddressinfo as t12

	  on t12.WorkOrderId = t1.Id

	  and t12.Deleted = 0

	left join tb_workbussinessjsoninfo t13 on t1.id = t13.WorkOrderId and t13.Deleted = 0

	WHERE t1.Deleted = 0;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  Result AS IsSuccess,

  'AFCReportStatisticsDaily' AS Logger,

  'proc_AFCReportStatisticsDaily'    AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

  IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

  IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

  NOW() AS LogTime;



END

proc_MoveWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoForBatch \u5728\u6e90\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_source"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoForBatch`;

proc_ChpCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_ChpCompletedWorkOrderById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_ChpCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT 'Chp根据id获取已完成工单明细'
BEGIN

    #Create: 2023年03月29日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_chpworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_chpworkorderdetail` (WorkOrderId, AppCode, OrderType, SubjectNameSummary, CustomerName,

                                         CustStoreName, CustSettleName, LinkMan, LinkTel,

                                         ProName, CityName, AreaName, InstallAddress, Remark, FirstConcatRole,

                                         chpCarUserName, chpCarUserTel, chpCarVinNumber,

                                         IsWithPile, IsSelfBuiltHouse, CarParkin, ProtectionBox, InstallType,

                                         GetElectricityType, Schedule, ElectricityMetersType,

                                         PowerPointLocation, WechatNumber, chpWXAddProgress, FirstContactRemark,

                                         WorkStatusName, CurrentPerson, SubmmitTime, RequiredTime,

                                         chpNextFollowTime, LastAppointStatus, LastFailAppointConcat,

                                         AllFailAppointConcat, SurveyTime, CompleteTime, ClosedAt, AuditRejectRemark,

                                         AuditRejectNum, LastAuditRejectTime,AuditTime, LastSurveyAuditCode, LastSurveyAuditName,

                                         LastInstallAuditCode, LastInstallAuditName, IsAddition, AdditionFeeSettleRoad,

                                         AdditionFeePayTypeName, AdditionFeeChangeRemark, AdditionFeeDetail,

                                         AdditionFeePrice, AdditionFeePaySource, AdditionFeeOfflinePayer,

                                         AdditionFeePayTime, ServiceGoodsName, ServiceGoodsPrice, Power,

                                         FirstPartySettleLength, PackageLength, BrandName, chpBrandInfoURL,

                                         ProjectWarrantyPeriod, SurveyName, Surveycode, InstallName, InstallCode,

                                         Distance, InstallAscription, FirstRecordTime,LastRecordTime, EmployeeAttributes, SurveyMethod,

                                         IndividualReason,

                                         SurveyResult, ResultReason, SurveyRemark, Seller, GoodsName, MaterialPrice,

                                         GoodsSource, MaterialNo, MaterialType, EscrowMaterialType, EscrowMaterialNo,

                                         PileWarrantyPeriod, WarehouseName, chpIsSelfWiring,

                                         HardWire, FlexibleCord, Drivepipe, LeakageInsurance,

                                         AirSwitchBox, ChargingPileColumn, chpInstallRemark, chpNextFollow, CreatedAt,

                                         FirstConcatPersonCode, FirstConcatPersonName, FirstConcatTime,

                                         ChpLineActualUsage,

                                         chpGoodsPackageSubsidyPrice, LastApplyReason, chpCarModel, chpProModel,

                                         chpChargerNo,

                                         chpOriginalInstallPerson, chpFactoryBrand, chpProblemDescription, chpFaulttime,

                                         chpFaultClass, chpSuggestedSolution, chpWarrantyStatus, chpActualSolutionName,

                                         chpIfCharge, chpAfterSaleRemark, chpLogisticsNum, chpShippingWarehouse,

                                         chpWarehouseMaterials,chpMaterialSN,chpWorkerSettlePrice,chpWorkerSettlementMethod,chpWorkerFeeRemark,

                                         chpInstallConditionDate,chpPileInventoryResults,chpColumnInventoryResults,

                                         AdditionFeeCommissionRatio,AllSubsidy,InstallPriPileSubsidy,AfterSalePriPileSubsidy,

                                         ChargingPileSubsidy,LeakageInsuranceSubsidy,GalvanizedPipeSubsidy,

                                         AdditionSubsidy,LineSubsidy,RemoteSubsidy,CarSubsidy,BonusSubsidy,

                                         DifferenceSubsidy,ComplaintDeduction,DifferenceDeduction,chpPilesNum, chpGunsNum,chpParkSpaceNum,

                                         DispatchTime,CustomerAuditApprovalTime,chpOrderSource,CurrentPersonCode)

    SELECT WorkOrderId,

           AppCode,

           OrderType,

           SubjectNameSummary,

           CustomerName,

           CustStoreName,

           CustSettleName,

           LinkMan,

           LinkTel,

           ProName,

           CityName,

           AreaName,

           InstallAddress,

           Remark,

           FirstConcatRole,

           chpCarUserName,

           chpCarUserTel,

           chpCarVinNumber,

           IsWithPile,

           IsSelfBuiltHouse,

           CarParkin,

           ProtectionBox,

           InstallType,

           GetElectricityType,

           Schedule,

           ElectricityMetersType,

           PowerPointLocation,

           WechatNumber,

           chpWXAddProgress,

           FirstContactRemark,

           WorkStatusName,

           CurrentPerson,

           SubmmitTime,

           RequiredTime,

           chpNextFollowTime,

           LastAppointStatus,

           LastFailAppointConcat,

           AllFailAppointConcat,

           SurveyTime,

           CompleteTime,

           ClosedAt,

           AuditRejectRemark,

           AuditRejectNum,

           LastAuditRejectTime,

           AuditTime,

           LastSurveyAuditCode,

           LastSurveyAuditName,

           LastInstallAuditCode,

           LastInstallAuditName,

           IsAddition,

           AdditionFeeSettleRoad,

           AdditionFeePayTypeName,

           AdditionFeeChangeRemark,

           AdditionFeeDetail,

           AdditionFeePrice,

           AdditionFeePaySource,

           AdditionFeeOfflinePayer,

           AdditionFeePayTime,

           ServiceGoodsName,

           ServiceGoodsPrice,

           Power,

           FirstPartySettleLength,

           PackageLength,

           BrandName,

           chpBrandInfoURL,

           ProjectWarrantyPeriod,

           SurveyName,

           Surveycode,

           InstallName,

           InstallCode,

           Distance,

           InstallAscription,

           FirstRecordTime,

           LastRecordTime,

           EmployeeAttributes,

           SurveyMethod,

           IndividualReason,

           SurveyResult,

           ResultReason,

           SurveyRemark,

           Seller,

           GoodsName,

           MaterialPrice,

           GoodsSource,

           MaterialNo,

           MaterialType,

           EscrowMaterialType,

           EscrowMaterialNo,

           PileWarrantyPeriod,

           WarehouseName,

           chpIsSelfWiring,

           HardWire,

           FlexibleCord,

           Drivepipe,

           LeakageInsurance,

           AirSwitchBox,

           ChargingPileColumn,

           chpInstallRemark,

           chpNextFollow,

           CreatedAt,

           FirstConcatPersonCode,

           FirstConcatPersonName,

           FirstConcatTime,

           ChpLineActualUsage,

           chpGoodsPackageSubsidyPrice,

           LastApplyReason,

           chpCarModel,

           chpProModel,

           chpChargerNo,

           chpOriginalInstallPerson,

           chpFactoryBrand,

           chpProblemDescription,

           chpFaulttime,

           chpFaultClass,

           chpSuggestedSolution,

           chpWarrantyStatus,

           chpActualSolutionName,

           chpIfCharge,

           chpAfterSaleRemark,

           chpLogisticsNum,

           chpShippingWarehouse,

           chpWarehouseMaterials,

           chpMaterialSN,

           chpWorkerSettlePrice,

           chpWorkerSettlementMethod,

           chpWorkerFeeRemark,

           chpInstallConditionDate,

           chpPileInventoryResults,

           chpColumnInventoryResults,

           AdditionFeeCommissionRatio,

           AllSubsidy,

           InstallPriPileSubsidy,

           AfterSalePriPileSubsidy,

           #UnderreportingSubsidy,

           ChargingPileSubsidy,

           LeakageInsuranceSubsidy,

           GalvanizedPipeSubsidy,

           AdditionSubsidy,

           LineSubsidy,

           RemoteSubsidy,

           CarSubsidy,

           BonusSubsidy,

           DifferenceSubsidy,

           ComplaintDeduction,

           DifferenceDeduction,#差异扣除

       chpPilesNum, #(充电桩)桩数量

       chpGunsNum, #(充电桩)枪数量

       chpParkSpaceNum, #(充电桩)车位数量

        DispatchTime,

		    CustomerAuditApprovalTime,

				chpOrderSource,

				CurrentPersonCode

    FROM (select  row_number() over (partition by a.id)                                               num,

                 a.id                                                                             AS WorkOrderId,

                 a.AppCode,

                 fn_GetOrderTypeByCode(a.OrderType)                                               as OrderType,

                 b.SubjectNameSummary,

                 a.CustomerName,

                 a.CustStoreName,

                 a.CustSettleName,

                 a.LinkMan,

                 a.LinkTel,

                 a.ProName,

                 a.CityName,

                 a.AreaName,

                 a.InstallAddress,

                 a.Remark,

                 case v_chpFirstContactRole when 1 then '运营' when 2 then '服务人员' end               as FirstConcatRole,

                 c.v_chpCarUserName                                                               as chpCarUserName,

                 c.v_chpCarUserTel                                                                as chpCarUserTel,

                 c.BussinessJson ->> '$.chpCarVinNumber'                                          as chpCarVinNumber,#车架号

                 c.BussinessJson ->> '$.chpFirstContact.IsWithPile'                               as IsWithPile, #带桩上门

                 c.BussinessJson ->> '$.chpSurveyInfo.IsSelfBuiltHouse'                           as IsSelfBuiltHouse, #是否自建房

                 c.BussinessJson ->> '$.chpSurveyInfo.CarParkin'                                  as CarParkin, #车位

                 c.BussinessJson ->> '$.chpSurveyInfo.ProtectionBox'                              as ProtectionBox,#保护箱

                 c.BussinessJson ->> '$.chpSurveyInfo.InstallType'                                as InstallType,#安装方式

                 c.BussinessJson ->> '$.chpSurveyInfo.GetElectricityType'                         as GetElectricityType,#取电方式

                 c.BussinessJson ->> '$.chpSurveyInfo.Schedule'                                   as Schedule,#立表进度

                 c.BussinessJson ->> '$.chpSurveyInfo.ElectricityMetersType'                      as ElectricityMetersType,#电表类型

                 c.BussinessJson ->> '$.chpSurveyInfo.PowerPointLocation'                         as PowerPointLocation,#取电点位置

                 c.BussinessJson ->> '$.chpFirstContact.WechatNumber'                             as WechatNumber,#车主微信号/群名

                 c.BussinessJson ->> '$.chpWXAddProgress'                                         as chpWXAddProgress,#车主微信添加进度 已添加/未通过

                 c.BussinessJson ->> '$.chpFirstContact.Remark'                                   as FirstContactRemark,#首联备注



                 fn_GetStatusNameByCode(a.WorkStatus)                                             as WorkStatusName,

                 (select OperName

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPerson, #当前处理人 取工单待办人,存在多个待办人不展示;

									  (select OperCode

                  from tb_operatinginfo a1

                  where a1.WorkOrderId = a.id

                    and a1.Deleted = 0

                  group by a1.WorkOrderId

                  having count(1) = 1)                                                            as CurrentPersonCode,#当前处理人编号取工单待办人,存在多个待办人不展示;

                 (select max(b1.DoneAt)

                  from workflowruntimeitems a1,

                       workflowruntimesteps b1

                  where a1.id = b1.RuntimeItemId

                    and a1.Deleted = 0

                    and b1.Deleted = 0

                    and b1.Name = '开始'

                    and b1.DoneAt is not null

                    and a.id = a1.TargetEntityId

                  group by a1.TargetEntityId)                                                     as SubmmitTime, #工单提交时间

                 a.RequiredTime                                                                   as RequiredTime,

                 c.v_chpNextFollowTime                                        as chpNextFollowTime,#下次跟进时间

                 (

                     SELECT CASE AppointStatus

                                WHEN 0 THEN ''

                                WHEN 1 THEN '改约'

                                WHEN 2 THEN '等通知'

                                WHEN 3 THEN '请求关闭'

                                WHEN 4 THEN '客服异常反馈记录'

                                WHEN 5 THEN '请求关闭(客户审核)'

                                WHEN 6 THEN '需再次上门'

                                WHEN 7 THEN '智能改约'

                                WHEN 8 THEN '改约'

                                WHEN 9 THEN '等通知'

                                WHEN 10 THEN '请求关闭'

                                WHEN 11 THEN '跟进记录'

                                END

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND AppointSource IN (1, 3) #一线异常反馈记录+智能改约

                       AND `Deleted` = 0

                       AND AppointStatus in (3, 11)

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastAppointStatus, #最新异常反馈类型 等通知/跟进记录,如果没有进行过异常反馈,展示为空,取最后一次的异常反馈结果

                 (

                     SELECT CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                   IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                      CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                   IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                   IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'), ''))

                     FROM `tb_appointment`

                     WHERE `WorkOrderId` = a.id

                       AND `Deleted` = 0

                     ORDER BY `CreatedAt` DESC

                     LIMIT 1)                                                                     as LastFailAppointConcat,#最新异常反馈详情 取最后一次的异常反馈提交记录,展示:记录提交时间+申请原因(申请原因+预约失败原因)+描述 +下次联系时间

                 (

                     SELECT group_concat(CONCAT(IF(CreatedAt IS NOT NULL, CONCAT('记录提交时间:', CreatedAt, ';'), ''),

                                                IF(ApplyReason IS NULL AND FailText IS NULL, '',

                                                   CONCAT('申请原因:', IFNULL(ApplyReason, ''), ';')),

                                                IF(Remark IS NOT NULL, CONCAT('描述:', Remark, ';'), ''),

                                                IF(NextContactTime IS NOT NULL, CONCAT('下次联系时间:', NextContactTime, ';'),

                                                   ''))

                                         order by CreatedAt desc separator '

')

                     FROM `tb_appointment`

                     WHERE `Deleted` = 0

                       #AND AppointSource IN (1,3) #是否要剔除 #呼叫中心+智能改约

                       AND `WorkOrderId` = a.id

                     group by WorkOrderId

                 )                                                                                as AllFailAppointConcat, #异常反馈记录 按321的顺序排列,时间靠后的展示在上 。展示形式:时间+申请原因(申请原因+预约失败原因)+描述+下次联系时间

                 d.SurveyTime                                                                     as SurveyTime,#勘测完成时间

                 e.CompleteTime                                                                   as CompleteTime,#安装完成时间

                 (select ClosedAt

                  from tb_workorderstatus w1

                  where a.id = w1.WorkOrderId

                    and w1.Deleted = 0)                                                           as ClosedAt,#关闭时间

                 (SELECT group_concat(ifnull(w1.Remark, '') order by w1.InsertTime desc separator ';')

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectRemark, #质检不通过备注 【勘测、安装】每次不通过的备注都放一起。

                 (SELECT count(1)

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  group by w1.WorkOrderId)                                                        as AuditRejectNum, #质检驳回次数 勘测驳回+安装驳回的次数

                 (SELECT DoneAt

                  FROM tb_workflowinfo w1

                  WHERE NextStepName in ('重新提交处理结果(安装)', '重新提交处理结果(勘测)','重新提交处理结果')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 4

                  order by DoneAt desc limit 1)                                                        as LastAuditRejectTime,#最新质检驳回时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('质检工单(安装)','质检工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime desc

                  limit 1)                                                                        as AuditTime, #安装质检通过时间

                (select `w2`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w2`

                where ((`w2`.`StepName` = '质检工单(勘测)') and (`w2`.`WorkOrderId` = `a`.`Id`) and (`w2`.`Deleted` = 0)

                      )

                order by `w2`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditCode`,  # 最新勘测质检人工号

                (select `w3`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w3`

                where ((`w3`.`StepName` = '质检工单(勘测)') and (`w3`.`WorkOrderId` = `a`.`Id`) and (`w3`.`Deleted` = 0)

                       )

                order by `w3`.`InsertTime` desc

                limit 1)                                                                                        AS `LastSurveyAuditName`,  # 最新勘测质检人姓名

                (select `w4`.`OperCode`

                from `serviceordercenter`.`tb_workflowinfo` `w4`

                where ((`w4`.`StepName` in ('质检工单(安装)','质检工单')) and (`w4`.`WorkOrderId` = `a`.`Id`) and (`w4`.`Deleted` = 0)

                       )

                order by `w4`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditCode`,  # 最新安装质检人工号

                (select `w5`.`OperName`

                from `serviceordercenter`.`tb_workflowinfo` `w5`

                where ((`w5`.`StepName` in ('质检工单(安装)','质检工单')) and (`w5`.`WorkOrderId` = `a`.`Id`) and (`w5`.`Deleted` = 0)

                       )

                order by `w5`.`InsertTime` desc

                limit 1)                                                                                        AS `LastInstallAuditName`,  # 最新安装质检人姓名

                case when g2.id is not null then '是' else '否' end                                as IsAddition, #是否存在增项

                 gg.ExtraJson ->> '$.SettleRoad'                                                  as AdditionFeeSettleRoad,#增项结算路径

                 #g2.ExtraJson ->> '$.SettleType'                                                             as AdditionFeeSettleType, #增项结算方

                 f1.PayTypeName                                                                   as AdditionFeePayTypeName,#结算方式

                 (select r2.Remark

                  from tb_remarkinfo r2

                  where Type = 13

                    and r2.WorkOrderId = a.id

                    and r2.Deleted = 0)                                                           as AdditionFeeChangeRemark,#增项结算修改原因

                 cast(replace(g2.ExtraJson ->> '$.AdditionFeeDetail', 'null', '') as char)        as AdditionFeeDetail,#增项明细

                 g2.Price                                                                         as AdditionFeePrice,#增项费(元)

                 case g2.PaySource

                     when 1 then '扫码支付'

                     when 2 then '线下转账'#'打款凭证'

                     when 3 then '银行转账'

                     end                                                                          as AdditionFeePaySource,#付款方式

                 g2.OfflinePayer                                                                  as AdditionFeeOfflinePayer,#打款人

                 g2.PayTime                                                                       as AdditionFeePayTime,#打款时间

                 gg.SaleName                                                                      as ServiceGoodsName, #安装服务商品

                 gg.GoodsPrice                                                                    as ServiceGoodsPrice,#服务商品价格 订单中心服务商品价格;生成订单时获取该价格 #待定、开发是否拿到

                 gg.ExtraJson ->> '$.Power'                                                       as Power,#功率

                 gg.ExtraJson ->> '$.FirstPartySettleLength'                                      as FirstPartySettleLength,#甲方结算套餐长度

                 gg.ExtraJson ->> '$.PackageLength'                                               as PackageLength,#车企套餐长度

                 gg.BrandName                                                                     as BrandName, #品牌

                 gg.ExtraJson ->> '$.chpBrandInfoURL'                                             as chpBrandInfoURL,#品牌资料

                 gg.ExtraJson ->> '$.ProjectWarrantyPeriod'                                       as ProjectWarrantyPeriod,#工程质保期(年)

                 #g.ExtraJson ->> '$.PackageCableSpecifications'                                              as PackageCableSpecifications, #套餐线缆规格

                 d.SurveyName                                                                     as SurveyName,#勘测人姓名

                 d.Surveycode                                                                     as Surveycode,#勘测人账号

                 e.ServiceName                                                                    as InstallName,# 安装人姓名

                 e.ServiceCode                                                                    as InstallCode,#安装人账号

                 d.Distance                                                                       as Distance, #单程服务距离(km)

                 (select case f1.Ascription #0外勤、1内勤、2优工、3特工-外访、4特工-催收\

                             when 0 then '外勤'

                             when 1 then '内勤'

                             when 2 then '优工'

                             when 3 then '特工-外访'

                             when 4 then '特工-催收'

                             end

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as InstallAscription, # 安装人员属性

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime asc limit 1)                                                     as FirstRecordTime,#首次提交安装结果时间

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('提交结果(安装)','提交结果','重新提交处理结果(安装)','重新提交处理结果')

                    and NextStepName not in ('重新调度(安装)','重新调度')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                  order by w1.InsertTime desc limit 1)                                                     as LastRecordTime,#最新一次提交安装结果时间

                 (select f1.v_EmployeeAttributes

                  from tb_userinfo e1

                           left join tb_userdetail f1 on e1.id = f1.id

                  where e.ServiceCode = e1.LoginName

                    and e1.Deleted = 0

                    and e1.TeamCode = '10670001'

                  limit 1)                                                                        as EmployeeAttributes, # 安装人员属性	#key没定

                 case d.SurveyMethod

                     when 1 then '单独上门勘测'

                     when 2 then '视频等远程勘测'

                     when 3 then '勘测+安装一起完成'

                     end                                                                          as SurveyMethod,# 勘测方式

                 d.IndividualReason                                                               as IndividualReason,#单独上门原因

                 case d.SurveyResult when 1 then '是' when 0 then '否' end                          as SurveyResult,# 是否继续安装

                 d.ResultReason                                                                   as ResultReason,#不安装原因

                 c.BussinessJson ->> '$.chpSurveyInfo.Remark'                                     as SurveyRemark,#勘测施工备注

                 (case when `g`.`Seller`=0 then '中瑞' when `g`.`Seller`=1 then '非中瑞' when `g`.`Seller`is null and a.ordertype='9856' then '非中瑞' end) as Seller,#充电桩销售方

                 g.GoodsName,#桩商品

                 h.MaterialPrice                                                                  as MaterialPrice,#桩价格

                 case g.GoodsSource

                     when 0 then '分仓货品'

                     when 1

                         then '批发货品' end                                                          as GoodsSource,#桩来源

                 case when g.Seller = 0 then h.MaterialNo end                                     as MaterialNo,#中瑞桩编码

                 g.ExtraJson ->> '$.ChargerType'                                                  as MaterialType,#充电桩类型

                 case when g.Seller = 1 then h.MaterialName end                                   as EscrowMaterialType,#代管桩物料

                 case when g.Seller = 1 then h.MaterialNo end                                     as EscrowMaterialNo,#代管桩编码

                 if(g.ExtraJson ->> '$.PileWarrantyPeriod'='null',null , g.ExtraJson ->> '$.PileWarrantyPeriod' )                   as PileWarrantyPeriod,#电桩质保期(年)

                 h.WarehouseName                                                                     WarehouseName,#充电桩出货仓库

                 case c.BussinessJson ->> '$.chpIsSelfWiring' when 1 then '是' when 0 then '否' end as chpIsSelfWiring,#车主是否自布线



                 fn_GetChpAccessoriesInfo('电缆硬线', a.Id)                                              HardWire,# 电缆硬线 出库方式|实际用量|品牌|规格。字段用 | 连接;未使用不展示品牌、规格;品牌是其他时展示 其他:录入备注

                 fn_GetChpAccessoriesInfo('电缆软线', a.Id)                                              FlexibleCord,# 电缆软线

                 fn_GetChpAccessoriesInfo('套管', a.Id)                                                Drivepipe,# 套管

                 fn_GetChpAccessoriesInfo('漏保', a.Id)                                                LeakageInsurance,#漏保

                 fn_GetChpAccessoriesInfo('空开盒', a.Id)                                               AirSwitchBox,#空开盒

                 fn_GetChpAccessoriesInfo('充电桩立柱', a.Id)                                             ChargingPileColumn,# #充电桩立柱

                 c.BussinessJson ->> '$.chpInstallRemark'                                         as chpInstallRemark, # 安装施工备注

                 c.BussinessJson ->> '$.chpNextFollow'                                            as chpNextFollow, # 安装后跟进记录

                 a.CreatedAt                                                                      as CreatedAt,#建单时间

                 (SELECT w1.OperCode

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonCode,

                 (SELECT w1.OperName

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatPersonName,

                 (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('首联')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1)                                                                           FirstConcatTime,

        c.v_ChpLineActualUsage as ChpLineActualUsage, #线缆实际用量(电缆硬线+电缆软线实际用量)

        c.BussinessJson ->> '$.chpGoodsPackageSubsidyPrice'  as chpGoodsPackageSubsidyPrice,

        ac.ApplyReason      AS `LastApplyReason`,

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpCarModel'))              AS `chpCarModel`,#车型

#施工完成时间(提交结果中录入的时间:serviceinfo表completetime)

#质检通过时间(对标安装质检通过时间)

#服务商品(跟安装服务商品应该是要存一起的,沿用原逻辑存)//已有

#施工人员姓名	施工人员账号	施工人员归属	(从工作流拿待提交处理结果人/tb_workserviceinfo表的服务人员)//已有

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpProModel'))              AS `chpProModel`,#产品型号

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpChargerNo'))             AS `chpChargerNo`,#桩编号

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpOriginalInstallPerson'))      AS `chpOriginalInstallPerson`,#原施工人

                 `c`.`BussinessJson` ->> '$.chpFactoryBrand'                                   as chpFactoryBrand,#主机厂品牌

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpProblemDescription'))         AS `chpProblemDescription`,#问题描述

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpFaulttime'))             AS `chpFaulttime`,#故障时间

                 `c`.`BussinessJson` ->> '$.chpFaultClass'                                     as chpFaultClass,#故障分类

                 json_unquote(

                         json_extract(`c`.`BussinessJson`, '$.chpSuggestedSolution'))          AS `chpSuggestedSolution`,#建议解决方案

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpWarrantyStatus'))        AS `chpWarrantyStatus`,#保修状态

                 concat(

                         (select name

                          from basic_datadictionary bd

                          where bd.code = `c`.`BussinessJson` ->> '$.chpActualSolutionCode'

                            and bd.Deleted = 0),

                         ',',

                         if(`c`.`BussinessJson` ->> '$.chpActualSolutionCode'='other',

                             ifnull(`c`.`BussinessJson` ->> '$.chpActualSolutionDetail', ''),''))      AS `chpActualSolutionName`,#实际处理方案(实际处理方案为其它时展示详细处理信息)

                 json_unquote(json_extract(`c`.`BussinessJson`, '$.chpIfCharge'))              AS `chpIfCharge`,

                 `c`.`BussinessJson` ->> '$.chpAfterSaleRemark'                                as chpAfterSaleRemark,#施工备注(在JSON表)

                 `c`.`BussinessJson` ->> '$.chpLogisticsNum'                                   as chpLogisticsNum,#物流单号

                 `g`.`ExtraJson` ->> '$.chpShippingWarehouse'                                  as chpShippingWarehouse,#出货仓库

                 (select group_concat(

                                 concat(tw.MaterialName, ',', ifnull(tw.MaterialNo, '无编码'), ',', ifnull(tw.Amount, 0),

                                        ';') SEPARATOR '

')

                  from tb_workgoodsdetail tw

                  where g.Id = tw.WorkGoodsId

                    and tw.Deleted = 0

                  group by tw.WorkOrderId)                                                     as chpWarehouseMaterials,# 所用物料	(拼接)

                  `c`.`BussinessJson` ->> '$.chpMaterialSN'  as chpMaterialSN,#故障物料SN

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlePrice'  as chpWorkerSettlePrice, #优工结算价(总价)

                  `c`.`BussinessJson` ->> '$.chpWorkerSettlementMethod' chpWorkerSettlementMethod, #优工结算方式

                  `c`.`BussinessJson` ->> '$.chpWorkerFeeRemark' chpWorkerFeeRemark, #优工费用备注

    if(c.BussinessJson->>'$.chpInstallConditionDate'='null',null,c.BussinessJson->>'$.chpInstallConditionDate')  chpInstallConditionDate ,#具备安装条件日期,

       c.BussinessJson->>'$.chpPileInventoryResults'    as chpPileInventoryResults, #桩盘点结果

       c.BussinessJson->>'$.chpColumnInventoryResults'    as chpColumnInventoryResults, #立柱盘点结果

      #增项费分佣比例(%)

           c.BussinessJson->>'$.AdditionFeeCommissionRatio' as AdditionFeeCommissionRatio,##增项费分佣比例(%)

           (select sum(ifnull(FeeValue,0)) from tb_feeapplicationinfo f1

            where a.Id = f1.TargetId and f1.Deleted = 0 and f1.AuditStatus = 2 and f1.OrgCode = '1067'

              and f1.FeeItemId in (select id

                                   from tb_feeiteminfo f2

                                   where f2.FeeItemName in

                                         ('漏保补贴','私桩计件-安装','私桩计件-售后','公桩计件(申请)','镀锌管补贴','增项',

                                         '电缆补贴','远补','用车补贴','奖金','差异补发','客诉扣款','差异扣除')

                                     and f2.Deleted = 0 and f2.OrgCode = '1067' and f2.Enable=1)) as AllSubsidy, #总费用

           fn_GetItemFeeById(a.id,'私桩计件-安装','1067') as InstallPriPileSubsidy, #私桩计件

           fn_GetItemFeeById(a.id,'私桩计件-售后','1067') as AfterSalePriPileSubsidy, #私桩计件

           #fn_GetItemFeeById(a.id,'漏报补贴','1067') as UnderreportingSubsidy, #漏报补贴

           fn_GetItemFeeById(a.id,'公桩计件(申请)','1067') as ChargingPileSubsidy, #公桩计件(申请)

           fn_GetItemFeeById(a.id,'漏保补贴','1067') as LeakageInsuranceSubsidy, #漏保补贴

           fn_GetItemFeeById(a.id,'镀锌管补贴','1067') as GalvanizedPipeSubsidy, #镀锌管补贴

           fn_GetItemFeeById(a.id,'增项','1067') as AdditionSubsidy , #增项

           fn_GetItemFeeById(a.id,'电缆补贴','1067') as LineSubsidy , #电缆补贴

           fn_GetItemFeeById(a.id,'远补','1067') as RemoteSubsidy , #远补

           fn_GetItemFeeById(a.id,'用车补贴','1067') as CarSubsidy , #用车补贴

           fn_GetItemFeeById(a.id,'奖金','1067') as BonusSubsidy , #奖金

           fn_GetItemFeeById(a.id,'差异补发','1067') as DifferenceSubsidy, #差异补发

           fn_GetItemFeeById(a.id,'客诉扣款','1067') as ComplaintDeduction,#客诉扣款

           fn_GetItemFeeById(a.id,'差异扣除','1067') as DifferenceDeduction,#差异扣除

       if(c.BussinessJson->>'$.chpPilesNum'='',null,c.BussinessJson->>'$.chpPilesNum')  as chpPilesNum, #(充电桩)桩数量

       if(c.BussinessJson->>'$.chpGunsNum'='',null,c.BussinessJson->>'$.chpGunsNum') as chpGunsNum, #(充电桩)枪数量

       if(c.BussinessJson->>'$.chpParkSpaceNum'='',null,c.BussinessJson->>'$.chpParkSpaceNum')as chpParkSpaceNum, #(充电桩)车位数量

                  /* (select f1.CustomizeJson->>'$.BelongPro'

        from (`serviceordercenter`.`tb_userinfo` `e1`

                 left join `serviceordercenter`.`tb_userdetail` `f1` on ((`e1`.`Id` = `f1`.`Id`)))

        where ((convert(`e`.`ServiceCode` using utf8mb4) = `e1`.`LoginName`) and (`e1`.`Deleted` = 0) and

               (`e1`.`TeamCode` = '10670001'))

        limit 1)                                                                                        AS `BelongPro` #人员归属省份*/

    (SELECT w1.DoneAt

                  FROM tb_workflowinfo w1

                  WHERE StepName in ('调度工单(勘测)','调度工单')

                    AND w1.WorkOrderId = a.Id

                    AND w1.Deleted = 0

                    AND w1.StepStatus = 1

                  order by w1.InsertTime

                  limit 1) as  DispatchTime,  #`勘测调度完成时间/调度完成时间

					`c`.`BussinessJson` ->> '$.CustomerAuditApprovalTime' as CustomerAuditApprovalTime,#客户审核通过时间

          `c`.`BussinessJson` ->> '$.chpOrderSource' as chpOrderSource #订单来源

          from tb_workorderinfo a

                   left join tb_worksubjectsummary b on a.id = b.WorkOrderId and b.Deleted = 0

                   left join tb_workbussinessjsoninfo c on a.id = c.WorkOrderId and c.Deleted = 0

                   left join tb_chpworkorderinfo d on a.id = d.id and d.Deleted = 0

                   left join tb_workserviceinfo e on a.id = e.WorkOrderId and e.Deleted = 0

                   left join tb_workfeeinfo f1 on a.id = f1.WorkOrderId and f1.Deleted = 0

              #left join tb_workfeeitem g1 on f1.id = g1.FeeInfoId and g1.FeePurpose = '勘测费用' and g1.Deleted = 0

                   left join tb_workfeeitem g2 on f1.id = g2.FeeInfoId and g2.FeePurpose = '增项费用' and g2.Deleted = 0

                   left join tb_workgoodsinfo g on a.id = g.WorkOrderId and g.Deleted = 0 and g.GoodsType = 0

                   left join tb_workgoodsinfo gg on a.id = gg.WorkOrderId and gg.Deleted = 0 and gg.GoodsType = 29

                   left join tb_workgoodsdetail h

                             on g.id = h.WorkGoodsId and h.Deleted = 0 and a.OrderType = '9856' #and h.MaterialTypeCode like '0101%'

                   left join tb_appointmentconcat ac on ac.WorkOrderId = a.Id and ac.Deleted = 0

          where a.Deleted = 0

            and a.ServiceProviderCode = '1067'

            and a.id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('ChpCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_ChpCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;

    select sys_ErrCode, sys_ErrMessage;

END

proc_WorkflowJsonCheck

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00')

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里

/*

SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;

*/



#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_CreateOrg

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrg \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrg`( InOrgName varchar(50),InShortName varchar(10))
    DETERMINISTIC
BEGIN

    #Author: wangxh

#Create: 2022-10-31 11:48:24

#Comment: 创建商户-基础信息(商户、团队、接单范围、监管范围)

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgCode varchar(10) ;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

	

     select Max(ProviderCode)+1 into  InOrgCode 

        from basic_serviceprovider ;

	

	INSERT INTO `basic_serviceprovider` (`Id`,`ProviderCode`,`ProviderName`,`ShortName`,`Enable`,`ExpireTime`,`BeginWorkTime`,`EndWorkTime`,`UserCenterOrgId`,`OperateAttributes`,`CreatedById`,`CreatedAt`,`Deleted`)

VALUES

       (fn_nextval('SP'),InOrgCode, InOrgName,InShortName,1,'2025-04-03','08:31:00','18:01:00',null,0 #自营 1非自营

       ,null,now(),0);

#serviceordercenter.basic_teaminfo 业务域_服务团队信息

INSERT INTO serviceordercenter.`basic_teaminfo` (`Id`,`TeamName`,`TeamCode`,`ProviderCode`,`ProviderName`,`ServicerCode`,`ServicerName`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('TI'), InOrgName,concat(InOrgCode,'0001'),InOrgCode, InOrgName,InOrgCode, InOrgName,1,now(),0);

#serviceordercenter.basic_institutionalinfo 业务域_机构信息表 #人员管理-团队管理

INSERT INTO serviceordercenter.`basic_institutionalinfo` (`Id`,`ParentId`,`Code`,`Name`,`Level`,`SortOrder`,`OrgCode`,`TeamCode`,`LeaderLoginName`,`InsertTime`,`DeletedAt`,`Deleted`)

VALUES

       (fn_nextval('IJ'),null,concat(InOrgCode,'0001'), InOrgName,1,1,InOrgCode,concat(InOrgCode,'0001'),null,now(),null,0);

#serviceordercenter.basic_rulegroupinfo 基础信息_规则组信息表

INSERT INTO serviceordercenter.`basic_rulegroupinfo` (`Id`,`GroupCode`,`GroupName`,`TeamCode`,`ApplicationId`,`ApplicationName`,`Priority`,`Enabled`,`InsertTime`,`Deleted`)

VALUES

       (fn_nextval('RG'),'EHCFRule001','接单范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',1,1,now(),0),

       (fn_nextval('RG'),'EHCFRule003','监管范围',concat(InOrgCode,'0001'),'8e240000-3e12-0016-d7bc-08d705e01d89','壹好车服',3,1,now(),0);



	#恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



    #返回结果

    SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

    SELECT Result AS IsSuccess,

    'CreateOrg' AS Logger,

    'proc_CreateOrg' AS ProcedureName,

    TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

    sys_ErrCode AS ErrCode,

    sys_ErrMessage AS ErrMessage,

    NOW() AS LogTime;



END

proc_CreateOrgRule

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgRule \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgRule`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-附件规则+人员属性匹配条件

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

 DECLARE sys_ErrMessage VARCHAR(200);

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE SubRuleCode1 varchar(50);

 DECLARE SubRuleCode2 varchar(50);

 DECLARE SubRuleCode3 varchar(50);

 DECLARE SubRuleCode4 varchar(50);

 DECLARE SubRuleCode5 varchar(50);

 DECLARE MatchNodeCode1 varchar(50);

 DECLARE MatchNodeCode2 varchar(50);

 DECLARE MatchNodeCode3 varchar(50);

 DECLARE MatchNodeCode4 varchar(50);

 DECLARE MatchNodeCode5 varchar(50);

 declare RuleTypeCode1 varchar(50);

declare accessoryresourceId1 varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 select concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5;

 select concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) ,

        concat('MNC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))

 into MatchNodeCode1,MatchNodeCode2,MatchNodeCode3,MatchNodeCode4,MatchNodeCode5;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted#,createdat

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用附件规则', '通用人员属性规则')*/

    #附件

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999457','orderType','工单类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'orderType',0,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999055','subjectCode','服务科目','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',1,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999053','addressfullName','服务地址-省+市+区','string',2,1,'"请选择"','pro-urban-areas',1,1,'in,nin,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'addressfullname',2,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999999056','customerName','客户名称','string',2,1,'"请输入"','text',null,1,'eq,neq,cn,ncn,en,nn',1,0,0,'{}','{}','','',1,InOrgCode,InOrgName,'customername',3,null,now(),0),

('AttatchmentRule',2,'ET9999999824','通用附件规则','AT9999998988','appointStatus','异常反馈类型','string',2,1,'"请选择"','select',1,1,'in,nin,en,nn',1,0,1,'[{"label": "改约", "value": "1", "default": false}, {"label": "等通知", "value": "2", "default": false}, {"label": "请求关闭", "value": "3", "default": false}]','{}','','',1,InOrgCode,InOrgName,'appointStatus',4,null,now(),0);

#select * from common_subruleinfo where SubRuleName = '适用全部工单的附件要求';

 /*

 select concat('RTC',date_format(now(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char)) into RuleTypeCode1;



 INSERT INTO `basic_datadictionary` (`Id`,`Code`,`Name`,`ParentId`,`OrgCode`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

 VALUES

        (fn_nextval('DD'),RuleTypeCode1,'异常反馈附件','DD0999999085',InOrgCode,null,null,now(),null,null,null,null,0);

 */

INSERT INTO `common_subruleinfo` (`Id`,`SubRuleCode`,`SubRuleName`,`RuleTypeCode`,`Priority`,`OrgCode`,`Enable`,`EnabledTime`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(fn_nextval('SR'),SubRuleCode1,'适用全部工单的附件要求','RTC202208256448',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode2,'适用全部工单的附件要求','RTC202203080001',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode3,'适用全部工单的附件要求','RTC202203080002',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode4,'适用全部工单的附件要求','RTC202210048979',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0),

(fn_nextval('SR'),SubRuleCode5,'适用全部工单的附件要求','RTC202209204082',1,InOrgCode,1,date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00'),null,now(),null,null,null,null,0);

select fn_nextval('BM') into accessoryresourceId1;

 INSERT INTO `basic_accessoryresource` (`Id`,`Code`,`Name`,`OrgCode`,`ResourceId`,`Remark`,`CreatedById`,`ResoureJson`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

(accessoryresourceId1,fn_nextval('BC'),'其他附件',InOrgCode,null,null,NULL,'{"ResourceNum": {"MaxNum": 100, "MinNum": 0, "ConditionType": "bt"}, "ResourceType": [{"ExtName": "jpg,jpeg,png", "ResType": "ResourcePic", "TypeName": "图片"}, {"ExtName": "mp4,m4v,webm", "ResType": "ResourceVideo", "TypeName": "视频"}, {"ExtName": "ogg,mp3,wav,m4a", "ResType": "ResourceAudio", "TypeName": "音频"}, {"ExtName": "txt,pdf,doc,docx,xls,xlsx,ppt,pptx", "ResType": "ResourceDoc", "TypeName": "文档"}]}',NOW(),null,null,null,null,0);

 /*select fn_nextval('SR') as id,

       concat('SRC',DATE_FORMAT(NOW(),'%Y%m%d'),cast(right(ceiling(rand()*10000+1000),4) as char))subrulecode,

       subrulename, ruletypecode, priority,

       InOrgCode orgcode, enable,

       date_format(date_add(now(),interval 1 day ),'%Y-%m-%d 01:00:00') as enabledtime,

       null createdbyid,

       now() createdat, null updatedbyid, null updatedat, null deletedbyid, null deletedat, 0 deleted

 from common_subruleinfo a

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0;*/

#select subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted from common_rulematchconditions

# where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 /*

 insert into common_rulematchconditions( subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, inserttime, deleted)

 select distinct a1.SubRuleCode subrulecode, matchgroup, matchgroupoperater, propertyid, matchoperater, propertyvalues, now() inserttime, 0 deleted

 from common_rulematchconditions b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = InOrgCode and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

 INSERT INTO `common_rulematchconditions` (`SubRuleCode`,`MatchGroup`,`MatchGroupOperater`,`PropertyId`,`MatchOperater`,`PropertyValues`,`InsertTime`,`Deleted`)

VALUES

 (SubRuleCode4,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode5,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode3,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode1,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0),

 (SubRuleCode2,1,'and','742','nn','[{"Code": "", "Names": null, "Values": ""}]',now(),0);

 update common_rulematchconditions

 set PropertyId=(select id

                 from common_listsearchproperty

                 where PropertyName = '工单类型'

                   and OrgCode = InOrgCode

                   and EntityName = '通用附件规则'#'通用附件规则'

                   and Deleted = 0)

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   ;

#select * from common_rulematchnodes where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

INSERT INTO `common_rulematchnodes` (`Id`,`SubRuleCode`,`MatchNodeCode`,`MatchNodeName`,`PropertyJson`,`ActionsJson`,`SortOrder`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`DeletedById`,`DeletedAt`,`Deleted`)

VALUES

 (fn_nextval('MN'),SubRuleCode4,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode4,MatchNodeCode4,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode5,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode5,MatchNodeCode5,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode3,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode3,MatchNodeCode3,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode1,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode1,MatchNodeCode1,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0),

 (fn_nextval('MN'),SubRuleCode2,'root','',null,null,0,null,now(),null,null,null,null,0),(fn_nextval('MN'),SubRuleCode2,MatchNodeCode2,'',null,'[{"actionType": "Attachment", "actionContent": {"remark": "", "actionLists": [{"id": "BM0999999640", "url": "http://vpshz.lunz.cn/%E9%A3%8E%E6%99%AF116673547939186719.jpg", "code": "BC9999999741", "name": "其他附件", "remark": null, "orgCode": "1004", "fileType": "jpeg", "filename": "风景1", "editState": false, "newRemark": " ", "fileLength": 6287647, "remarkFrom": 0, "resourceId": "BR0999859804", "resoureJson": "{\\"ResourceNum\\": {\\"MaxNum\\": 100, \\"MinNum\\": 0, \\"ConditionType\\": \\"bt\\"}, \\"ResourceType\\": [{\\"ExtName\\": \\"jpg,jpeg,png\\", \\"ResType\\": \\"ResourcePic\\", \\"TypeName\\": \\"图片\\"}, {\\"ExtName\\": \\"mp4,m4v,webm\\", \\"ResType\\": \\"ResourceVideo\\", \\"TypeName\\": \\"视频\\"}, {\\"ExtName\\": \\"ogg,mp3,wav,m4a\\", \\"ResType\\": \\"ResourceAudio\\", \\"TypeName\\": \\"音频\\"}, {\\"ExtName\\": \\"txt,pdf,doc,docx,xls,xlsx,ppt,pptx\\", \\"ResType\\": \\"ResourceDoc\\", \\"TypeName\\": \\"文档\\"}]}", "writeRemark": " ", "resourceNumStr": "0 - 100", "remarkFromBefore": 0, "resourceTypeName": "图片、视频、音频、文档"}]}}]',0,null,now(),null,null,null,null,0)

 ;

update common_rulematchnodes

 set ActionsJson=json_set(ActionsJson,'$[0].actionContent.actionLists[0].orgCode',InOrgCode,

    '$[0].actionContent.actionLists[0].id',accessoryresourceId1)

 where MatchNodeCode<>'root'

 and SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and ActionsJson->>'$[0].actionContent.actionLists[0].orgCode'='1004';

 /* insert into common_rulematchnodes( id, subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     createdat,deleted)

 select distinct  a1.subrulecode subrulecode, matchnodecode, matchnodename, propertyjson, actionsjson, sortorder,

                                     now() createdat, 0 deleted

 from common_rulematchnodes b

 join common_subruleinfo a on b.SubRuleCode = a.SubRuleCode

 left join common_subruleinfo a1 on a.SubRuleName = a1.SubRuleName and a1.OrgCode = '1004' and a1.Deleted = 0

 where a.SubRuleName = '适用全部工单的附件要求'

   and a.OrgCode = '1004'

 and a.Deleted = 0

 and b.Deleted = 0;*/

#select * from common_rulematchrelation where SubRuleCode in('SRC202211066292','SRC202211067085','SRC202211066272','SRC202211064459','SRC202211064912');

 INSERT INTO common_rulematchrelation(ID, SUBRULECODE, LINKTYPE, LINKTYPENAME, STARTMATCHNODE, ENDMATCHNODE, LINKPROPERTYJSON, LINKACTIONSJSON, SORTORDER, CREATEDAT, DELETED)

values

(fn_nextval('MR'),SubRuleCode1, 'DefaultType', '', 'root', MatchNodeCode1, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode2, 'DefaultType', '', 'root', MatchNodeCode2, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode3, 'DefaultType', '', 'root', MatchNodeCode3, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode4, 'DefaultType', '', 'root', MatchNodeCode4, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0),

(fn_nextval('MR'),SubRuleCode5, 'DefaultType', '', 'root', MatchNodeCode5, '[{"MatchGroup": 1, "MatchConditions": [{"DataType": "select", "IsScript": false, "PropertyId": 742, "PropertyCode": "orderType", "PropertyName": "工单类型", "ActionScripts": {"Script": null}, "IsMultiSelect": true, "MatchCondition": "nn", "PropertyValues": [{"Code": "", "Names": null, "Values": ""}], "PropertyTypeCode": "string"}], "MatchGroupOperater": "and"}]', '[{"Rules": [{"Rules": null, "RuleName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400_1", "Expression": "(orderType_1)", "LocalParams": [{"Name": "orderType_1", "Expression": "!DftRuleUtil.En(param.orderType)"}], "RuleExpressionType": "LambdaExpression"}], "WorkflowName": "[SRC202211064459]适用全部工单的附件要求/MR9999999400"}]',0,now(),0)

 ;

 update common_rulematchrelation

 set LINKPROPERTYJSON=json_set(LinkPropertyJson, '$[0].MatchConditions[0].PropertyId', (select id

                                                                                        from common_listsearchproperty

                                                                                        where PropertyName = '工单类型'

                                                                                          and OrgCode = InOrgCode

                                                                                          and EntityName = '通用附件规则'#'通用附件规则'

                                                                                          and Deleted = 0))

 where Deleted = 0

   and SubRuleCode in (SubRuleCode1, SubRuleCode2, SubRuleCode3, SubRuleCode4, SubRuleCode5)

   and LINKPROPERTYJSON ->> '$[0].MatchConditions[0].PropertyId' = 742;

 update common_rulematchrelation

 set LinkActionsJson=json_set(LinkActionsJson,

     '$[0].Rules[0].RuleName',replace(replace(LinkActionsJson->>'$[0].Rules[0].RuleName','SRC202211064459',SubRuleCode),'MR9999999400',Id),

     '$[0].WorkflowName',replace(replace(LinkActionsJson->>'$[0].WorkflowName','SRC202211064459',SubRuleCode),'MR9999999400',Id))

 where SubRuleCode in(SubRuleCode1,SubRuleCode2,SubRuleCode3,SubRuleCode4,SubRuleCode5)

 and Deleted = 0;



#人员属性

     INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999058','affiliatedInstitution','一级机构','string',2,1,'"请选择"','select',1,1,'in',1,1,2,'"{ \\"url\\": \\"UserInfoManage/UserInfo/GetInstitutionalByProvider\\"}"','{}','code','name',1,InOrgCode,InOrgName,'affiliatedinstitution',1,null,now(),0),

('UserPropertyRule',2,'ET9999999825','通用人员属性规则','AT9999999057','ascription','人员归属','string',2,1,'"请选择"','select',1,1,'in,en,nn',1,1,2,'"{ \\n    \\"url\\": \\"UserInfoManage/Ascription?operateAttributes=&haveNullAscription=true\\"\\n}"','{}','','',1,InOrgCode,InOrgName,'ascription',0,null,now(),0);



 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage; #日志记录生成模块



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgRule'                             AS Logger,

        'proc_CreateOrgRule'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;

     END

proc_DelHisWorkOrderInfoForBatch

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoForBatch \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoForBatch`(

    InBatchNo smallint

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2021-11-16 10:54:24

#Comment: 单个单已完成工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE NDeleted INT(1) DEFAULT 1;

    DECLARE OWorkOrderId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();





    select WorkOrderId into OWorkOrderId

    from serviceordercenterhis.move_hisworkorderinfo a

    where BATCHNO = InBatchNo and a.Result =0

    LIMIT 1;



    WHILE OWorkOrderId IS NOT NULL DO



        CALL proc_DelHisWorkOrderInfoBySingle(OWorkOrderId);

        update serviceordercenterhis.move_hisworkorderinfo A set A.result = 2 WHERE WorkOrderId = OWorkOrderId;



      SET OWorkOrderId=NULL;

        select WorkOrderId into OWorkOrderId

        from serviceordercenterhis.move_hisworkorderinfo a

        where BATCHNO = InBatchNo and a.Result =0

        LIMIT 1;

    end while;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'DelMoveWorkFlowForBatch'                      AS Logger,

           'proc_DelMoveWorkFlowForBatch'                 AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           sys_ErrMessage                              AS ErrMessage,

           NOW()                                       AS LogTime;

*/

END

proc_RecoveryBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_RecoveryBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_RecoveryBySingle`(

InWorkOrderId varchar(12) 

)
    SQL SECURITY INVOKER
BEGIN





  DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE IsSuc TINYINT(1);	

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

	SET sys_StartTime = NOW();

	SET IsSuc=0;

 



	#开启事务

	START TRANSACTION;

	

	

	

#1.0 恢复主库vhs表

 update serviceordercenter.tb_vhsworkorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null 	where Id=InWorkOrderId and Deleted = 2; 

#2.0 恢复主库workorder表

 update serviceordercenter.tb_workorderinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where Id=InWorkOrderId and Deleted = 2;

#3.0 恢复 tb_workorderstatus

update serviceordercenter.tb_workorderstatus 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.0 tb_workcarinfo 车辆信息

update serviceordercenter.tb_workcarinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.0 tb_workserviceinfo 工单备案信息 

update serviceordercenter.tb_workserviceinfo 	set Deleted=0,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.0 tb_workservicesubject

update serviceordercenter.tb_workservicesubject 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#7.0 tb_workaddressinfo

update serviceordercenter.tb_workaddressinfo 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2; 

#8.tb_workservicesubject 服务科目

update serviceordercenter.tb_workservicesubject 	set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#9.tb_worksubjectsummary 服务科目

update serviceordercenter.tb_worksubjectsummary 	set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#10.tb_appointment 预约

update serviceordercenter.tb_appointment 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#11.tb_appointmentconcat 预约拼接

update serviceordercenter.tb_appointmentconcat 	set Deleted=0 ,DeletedAt=null,DeletedById=null	where WorkOrderId=InWorkOrderId and Deleted = 2;

#12.tb_workbussinessjsoninfo  工单业务信息冗余JSON

update serviceordercenter.tb_workbussinessjsoninfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#13.tb_worktaginfo 工单标记信息

update serviceordercenter.tb_worktaginfo  set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#14.tb_workresourceinfo 附件信息

update serviceordercenter.tb_workresourceinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#15  basic_resourceitem 

UPDATE serviceordercenter.tb_workresourceinfo a 

 JOIN serviceordercenter.basic_resourceitem  c on a.resourceId=c.Id  

SET c.Deleted =0,c.DeletedAt = null, c.DeletedById = null

WHERE a. `WorkOrderId` =InWorkOrderId

and c.Deleted = 2;

#16 tb_workfeeinfo 

update serviceordercenter.tb_workfeeinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#17 tb_workfeedetail

update serviceordercenter.tb_workfeedetail  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#18 tb_workfeeitem

update serviceordercenter.tb_workfeeitem  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

# 19 tb_vhsworkfilereceiveinfo

update serviceordercenter.tb_vhsworkfilereceiveinfo  set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#20 tb_vhsworkrecordinfo

update serviceordercenter.tb_vhsworkrecordinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#21 tb_vhsworkorderrecorddetail  用Id

update serviceordercenter.tb_vhsworkorderrecorddetail  set Deleted=0 ,DeletedAt=null,DeletedById=null where Id=InWorkOrderId and Deleted = 2;

#22 tb_vhsworkauditinfo

update serviceordercenter.tb_vhsworkauditinfo set Deleted=0  ,DeletedAt=null,DeletedById=null where WorkOrderId=InWorkOrderId and Deleted = 2;

#25 tb_operatedinfo 

update serviceordercenter.tb_operatedinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#26  tb_operatinginfo

update serviceordercenter.tb_operatinginfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#27 tb_recordinfo

update serviceordercenter.tb_recordinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#28 tb_remarkinfo

update serviceordercenter.tb_remarkinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#30 tb_auditinfo

update serviceordercenter.tb_auditinfo set Deleted=0  where WorkOrderId=InWorkOrderId and Deleted = 2;

#31 tb_mortgageechangerecord

update serviceordercenter.tb_mortgageechangerecord set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

#32 tb_workorderchangelog

update serviceordercenter.tb_workorderchangelog set Deleted=0   where WorkOrderId=InWorkOrderId and Deleted = 2;

#36 tb_worksignininfo

update serviceordercenter.tb_worksignininfo  set Deleted=0   ,DeletedAt=null,DeletedById=null  where WorkOrderId=InWorkOrderId and Deleted = 2;

#37 rp_vhsworkorderdetail 

update serviceordercenter.rp_vhsworkorderdetail set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#38 rp_vhsworkorderinfodetail

update serviceordercenter.rp_vhsworkorderinfodetail set Deleted=0  	where WorkOrderId=InWorkOrderId and Deleted = 2;

 

 

#his库逻辑删除

update serviceordercenterhis.tb_vhsworkorderinfo  set deleted=1,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId;

update serviceordercenterhis.tb_workorderinfo set deleted=1 ,DeletedAt = NOW(),DeletedById = '12345678-0000-0000-0000-000000000000' where Id=InWorkOrderId; 

	

	

	

	

	

	

	

	

	



######################################################################################################################################  工作流begin



#1.tb_workflowinfo  工作流信息 

update serviceordercenter.tb_workflowinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#2.tb_workoperateinfo

update serviceordercenter.tb_workflowjsoninfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#3.tb_workoperateinfo

update serviceordercenter.tb_workoperateinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#4.tb_workoperationinfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#5.tb_workorderjsoninfo

update serviceordercenter.tb_workoperationinfo set Deleted=0 where WorkOrderId=InWorkOrderId and Deleted = 2;

#6.workflowitems workflownodes workflowhandlingstatus 全量



 

#7.workflowruntimeitems 

UPDATE serviceordercenter.workflowruntimeitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and b.DeletedById = '12345678-0000-0000-0000-000000000000';



#8.workflowruntimeactivities

UPDATE  serviceordercenter.workflowruntimeactivities t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#9.workflowruntimestatus 

UPDATE  serviceordercenter.workflowruntimestatus t

join serviceordercenter.tb_vhsworkorderinfo b on t.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





#10.workflowruntimesteps

UPDATE  serviceordercenter.workflowruntimesteps t

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#11.workflowruntimeactors

UPDATE  serviceordercenter.workflowruntimeactors t1

 join serviceordercenter.workflowruntimesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowruntimeitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id



SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';



#12.workflowruntimerelatedactors 





#13. workflowcompleteitems 

UPDATE serviceordercenter.workflowcompleteitems b

JOIN serviceordercenter.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 0  ,

    b.DeletedAt = null ,

    b.DeletedById = null

WHERE a.Id=InWorkOrderId

and b.Deleted=1

and  b.DeletedById = '12345678-0000-0000-0000-000000000000';



#14.workflowcompletesteps  

UPDATE  serviceordercenter.workflowcompletesteps t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';



#15.workflowcompleteactors

UPDATE  serviceordercenter.workflowcompleteactors t1

 join serviceordercenter.workflowcompletesteps t on t1.RuntimeStepId=t.Id

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t1.Deleted = 0  ,

    t1.DeletedAt = null ,

    t1.DeletedById = null

WHERE b.Id=InWorkOrderId

and t1.Deleted=1

and  t1.DeletedById = '12345678-0000-0000-0000-000000000000';





#16.workflowcompleteactivities

UPDATE  serviceordercenter.workflowcompleteactivities t

 join serviceordercenter.workflowcompleteitems a on t.RuntimeItemId=a.Id

 join serviceordercenter.tb_vhsworkorderinfo b on a.TargetEntityId=b.Id

SET t.Deleted = 0  ,

    t.DeletedAt = null ,

    t.DeletedById = null

WHERE b.Id=InWorkOrderId

and t.Deleted=1

and  t.DeletedById = '12345678-0000-0000-0000-000000000000';





##################################################################################################  工作流end .













#################################################################################################    删除his库工作流相关表数据 begin 



 

#1.tb_workflowinfo  工作流信息 

update serviceordercenterhis.tb_workflowinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#2.tb_workoperateinfo

update serviceordercenterhis.tb_workflowjsoninfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#3.tb_workoperateinfo

update serviceordercenterhis.tb_workoperateinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#4.tb_workoperationinfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#5.tb_workorderjsoninfo

update serviceordercenterhis.tb_workoperationinfo set Deleted=1 where WorkOrderId=InWorkOrderId ;

#6.workflowitems workflownodes workflowhandlingstatus 全量



#7.workflowruntimeitems 

UPDATE serviceordercenterhis.workflowruntimeitems b

JOIN serviceordercenterhis.tb_vhsworkorderinfo a ON a.Id = b.TargetEntityId

SET b.Deleted = 1  ,

    b.DeletedAt = now() ,

    b.DeletedById = '12345678-0000-0000-0000-000000000000'

WHERE a.Id=InWorkOrderId;









#################################################################################################    删除his库工作流相关表数据 end  









	

	

	

	 

		

	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET IsSuc=0;

		ROLLBACK;

	ELSE

		SET IsSuc=1;

		COMMIT;

	END IF;  

	

	

	



INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT IsSuc AS IsSuccess,

           'RecoveryBySingle' AS Logger,

           'proc_RecoveryBySingle'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',InWorkOrderId,CONCAT('入参:',InWorkOrderId,',错误信息:' ,sys_ErrMessage)) AS ErrMessage,

           NOW() AS LogTime;

					 

					 

					 

					 





END

proc_WorkflowBack_pre

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack_pre \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack_pre`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退(先查询)





/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_status_now varchar(10) ; -- 当前状态 

		DECLARE p_workflow_name varchar(100) ; -- 工作流名称

		DECLARE p_status_all varchar(5000) ; -- 所有状态和节点定义

		DECLARE p_steps varchar(5000) ; -- 步骤列表

		SET result='';

		 

		

		

		SELECT WorkStatus INTO p_status_now FROM tb_workorderinfo WHERE Id=InOrderId;

		SET result=CONCAT(result,'当前状态:',IFNULL(p_status_now,''),'\n');

		

		

		SELECT b.`Name` INTO p_workflow_name  FROM workflowruntimeitems a,workflowitems b where a.WorkflowItemId=b.Id and a.TargetEntityId=InOrderId and a.deleted=0 and b.deleted=0 limit 1;

		SET result=CONCAT(result,'工作流名称:',IFNULL(p_workflow_name,''),'\n');

	

	  

		

		select GROUP_CONCAT(concat('WorkStatus:',WorkStatus,' WorkStatusName:',WorkStatusName,' WorkFlowCode:',WorkFlowCode,' WorkFlowName:',WorkFlowName,' NodeCode:(',NodeCode,') NodeName:',NodeName) ORDER BY c.WorkStatus SEPARATOR '\n') into p_status_all

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		

		 SET result=CONCAT(result,'所有状态和节点定义:\n',IFNULL(p_status_all,''),'\n');

 

	

	  select 

		GROUP_CONCAT(concat('排序:',c.SortOrder,' 节点:',c.name,' 运行状态:',ifnull(d.`Status`,'--'),' 运行时步骤Id:',ifnull(d.Id,''))  ORDER BY c.sortorder SEPARATOR '\n')

		into p_steps

	  from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join workflownodes c on b.Id=c.WorkflowItemId and c.deleted=0

		left join workflowruntimesteps d on a.Id=d.RuntimeItemId and d.WorkflowNodeId=c.Id  and d.deleted=0 

	  where a.TargetEntityId=InOrderId 

		and a.deleted=0 ;

		 

		 

		  

		 SET result=CONCAT(result,'步骤列表:\n',IFNULL(p_steps,''),'\n');





		 

		

		SELECT result;



END

proc_WorkflowBack

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowBack \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowBack`(InOrderId char(12),InNewStatus int )
    SQL SECURITY INVOKER
BEGIN

#Author: yift

#Create: 2025-01-08

#Comment: 工作流回退执行sql;





#InOrderId 订单Id

#InNewStatus 新状态值 







/*

1、修改tb_workorderinfo状态

2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)

3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark)

6、tb_workflowinfo表删除多余步骤



*/



    #变量定义

    DECLARE result text ;-- 存最终结果

		DECLARE p_tb_workorderinfo text ; -- 修改主表sql 

		DECLARE p_tb_workorderstatus text  ; -- 修改状态表sql

		DECLARE p_workflowruntimesteps text; -- 修改步骤表sql

		DECLARE p_workflowruntimeitems  text; -- 修改运行时主表sql

		DECLARE p_workflowruntimeactors  text; -- 修改人员表sql

		DECLARE p_tb_workflowinfo text; -- 修改工作流信息表sql

		

		SET result='';

		

		# 0 获取当前步骤和当前步骤的排序

		select c.Id,c.SortOrder into @current_step_id,@px

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

		join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

		where a.TargetEntityId=InOrderId

		and d.WorkStatus=InNewStatus

		order by c.SortOrder DESC LIMIT 1 -- 可能有多次相同步骤,取最后一次

		;

		

		

		

		 

		 #1、修改tb_workorderinfo状态

		 

	   select concat('update tb_workorderinfo set WorkStatus=',InNewStatus,' where Id="',a.Id, '";') into p_tb_workorderinfo from  tb_workorderinfo a where id=InOrderId ;		  

		 SET result=CONCAT(result,'-- tb_workorderinfo:\n',p_tb_workorderinfo,'\n');

		 

		 #2、修改tb_workorderstatus(WorkStatus,NodeCode,StepStatus,StepName,PreStepStatus,PreStepName)    

	  select 

	  concat('update tb_workorderstatus set WorkStatus=',InNewStatus,', NodeCode="',c.NodeCode,'",StepStatus="PROCESSING", StepName="',c.NodeName,'",PreStepStatus="ACCEPTED",PreStepName="',(select Name FROM workflowruntimesteps where RuntimeItemId=a.Id AND Deleted=0 and SortOrder<@px order by SortOrder desc limit 1 ),'" where WorkOrderId="', InOrderId , '" and deleted=0;') into p_tb_workorderstatus

		from workflowruntimeitems a

		join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

		join basic_workflowstatus c on b.name=c.WorkFlowName and c.deleted=0

		join tb_workorderstatus d on a.TargetEntityId=d.WorkOrderId

		where a.TargetEntityId=InOrderId 

		and a.deleted=0 

		and c.WorkStatus=InNewStatus;

		

		SET result=CONCAT(result,'-- tb_workorderstatus:\n',p_tb_workorderstatus,'\n');

		

		

		#3、修改工作流步骤表:workflowruntimesteps(多余步骤逻辑删除,最新的最后步骤改为PROCESSING)

    



		

		

		

		select GROUP_CONCAT(`SQL语句` SEPARATOR '\n') into p_workflowruntimesteps from 

		(

			select   

			case when c.SortOrder=@px  then concat('update workflowruntimesteps set AcceptedNumber=0,	DeclinedNumber=0 ,`Status`="PROCESSING" where id ="',c.Id,'";') 

			when c.SortOrder>@px then concat('update workflowruntimesteps set deleted=1 where id ="',c.Id,'";') 

			else null  end as 'SQL语句',

			d.WorkStatus,d.NodeName,c.*    

			from workflowruntimeitems a

			join workflowitems b on a.WorkflowItemId=b.Id and b.deleted=0

			join  workflowruntimesteps c on a.Id=c.RuntimeItemId and c.deleted=0

			join basic_workflowstatus d on  c.name=d.NodeName and d.WorkFlowCode=b.code and d.deleted=0 

			where a.TargetEntityId=InOrderId		

			having SQL语句 is not null 

			order by c.SortOrder 

		)x; 

		

		SET result=CONCAT(result,'-- workflowruntimesteps:\n',p_workflowruntimesteps,'\n');	

		 

		 

		 

		 #4、修改当前步骤:workflowruntimeitems(CurrentStepId,Status)

		 select concat('update workflowruntimeitems set CurrentStepId="',@current_step_id,'",Status="PROCESSING" where Id="',a.Id,'";')

		 into p_workflowruntimeitems

		 from workflowruntimeitems a where TargetEntityId=InOrderId  and Deleted=0;  	   

		 SET result=CONCAT(result,'-- workflowruntimeitems:\n',p_workflowruntimeitems,'\n'); 

		

		

		

		 #5、当前步骤的人员表:workflowruntimeactors(Processed,ProcessedAt,ProcessedAt,Status,Active,remark) 

			set p_workflowruntimeactors=CONCAT("UPDATE `serviceordercenter`.`workflowruntimeactors` SET `Processed`=b'0',`ProcessedAt`=null,`WorkflowHandlingStatusId`=null,`Status`='PROCESSING',`Active`=b'0' ,remark=null WHERE `RuntimeStepId`='",@current_step_id,"';");

		  SET result=CONCAT(result,'-- workflowruntimeactors:\n',p_workflowruntimeactors,'\n');

	



     #6、tb_workflowinfo表删除多余步骤

		 select 

		 GROUP_CONCAT(CONCAT('update tb_workflowinfo set deleted=1 where id=',a.Id,';') SEPARATOR '\n' ) into p_tb_workflowinfo

		 from tb_workflowinfo  a where WorkOrderId=InOrderId and SortOrder>@px and deleted=0 ;

		 

		 

		 SET result=CONCAT(result,'-- tb_workflowinfo:\n',p_tb_workflowinfo,'\n');

		 

 

		 

		 











		SELECT result;



END

proc_CreateWorkFlow

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateWorkFlow \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateWorkFlow`(InOrgCode varchar(50), InOrderType varchar(10),

                                                            InOrderTypeName varchar(50))
    DETERMINISTIC
BEGIN

    #Author: wangxh

    #Create: 2022-10-31 11:48:24

    #Comment: 创建商户-工作流初始化

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE InOrgName varchar(50);

    DECLARE InVersionOfId varchar(36);

    DECLARE InItemId varchar(20);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

        GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

            sys_ErrMessage= MESSAGE_TEXT;

    END;

    SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务



    START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    select ShortName

    into InOrgName

    from basic_serviceprovider

    where ProviderCode = InOrgCode

      and Deleted = 0;



    select uuid() into InVersionOfId;

    select IFNULL(InOrderType, '001') into InItemId;



    if (select 1

        from basic_apollo

        where NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0) is true then

        set Result = 1;

        rollback;

        set sys_ErrCode = '10000';

        set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

    else

        INSERT INTO `basic_apollo` (NameSpace, `Key`, `Value`, `Remark`)

        VALUES ('WrokflowCodes', InOrderType, '{

          "Value": "Install001"

        }', concat(InOrgName, InOrgCode, InItemId));

        update serviceordercenter.basic_apollo

        set Value= json_set(Value, '$.Value', CONCAT('Common-', InOrgCode, '-', InItemId))

        where Value ->> '$.Value' = 'Install001'

          and NameSpace = 'WrokflowCodes'

          and `Key` = InOrderType

          and Deleted = 0;

        if (select 1

            from basic_apollo

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and InOrderType member of (value ->> '$.Value[*].OrderType')

              and Deleted = 0) is true then

            set Result = 1;

            rollback;

            set sys_ErrCode = '10000';

            set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有Apollo配置,请联系管理员核查;');

        else

            update serviceordercenter.basic_apollo a

            set Value = JSON_ARRAY_INSERT(Value, '$.Value[0]', json_object('OrderType', InOrderType,

                                                                           'AppointStatus',

                                                                           JSON_ARRAY(

                                                                                   json_object('Tag', 1, 'Name', '改约',

                                                                                               'Code',

                                                                                               concat('ChangeReason', InOrderType)),

                                                                                   json_object('Tag', 2, 'Name', '等通知',

                                                                                               'Code',

                                                                                               concat('WaitNotice', InOrderType)),

                                                                                   json_object('Tag', 3, 'Name', '请求关闭',

                                                                                               'Code',

                                                                                               concat('CloseReason', InOrderType))

                                                                               )))

            where NameSpace = 'application'

              and `Key` = 'AppointmentBindOrderType'

              and Deleted = 0;

            if (select 1

                from basic_datadictionary

                where code in (concat('ChangeReason', InOrderType), concat('WaitNotice', InOrderType),

                               concat('CloseReason', InOrderType),

                               concat('ChangeReason', InOrderType, '001'), concat('WaitNotice', InOrderType, '001'),

                               concat('CloseReason', InOrderType, '001'))

                  and Deleted = 0) is true then

                set Result = 1;

                rollback;

                set sys_ErrCode = '10000';

                set sys_ErrMessage = concat(ifnull(sys_ErrMessage, ''), ' ', InOrderType, '已有字典表配置,请联系管理员核查;');

            else

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                values (fn_nextval('DD'), concat('ChangeReason', InOrderType), concat(InOrderTypeName, '-申请原因-改约'),

                        null, InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('WaitNotice', InOrderType), concat(InOrderTypeName, '-申请原因-等通知'), null,

                        InOrgCode, 1, now(), 0),

                       (fn_nextval('DD'), concat('CloseReason', InOrderType), concat(InOrderTypeName, '-申请原因-请求关闭'),

                        null, InOrgCode, 1, now(), 0);

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('ChangeReason', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('WaitNotice', InOrderType)

                  and deleted = 0;

                insert into basic_datadictionary(id, code, name, parentid, orgcode, sortorder,

                                                 createdat, deleted)

                select fn_nextval('DD'),

                       concat(code, '001'),

                       '其它原因',

                       id,

                       InOrgCode,

                       1,

                       now(),

                       0

                from basic_datadictionary

                where code = concat('CloseReason', InOrderType)

                  and deleted = 0;

                if (select 1

                    from workflowitems

                    where Code = CONCAT('Common-', InOrgCode, '-', InItemId)

                      and Deleted = 0

                      and VersionState = 'PUBLISHED') is true then

                    set Result = 1;

                    rollback;

                    set sys_ErrCode = '10000';

                    set sys_ErrMessage =

                            concat(ifnull(sys_ErrMessage, ''), ' 有已发布的 ', concat(InOrgName, InItemId, '流程-支持出发到达签到'),

                                   ' 工作流,请联系管理员核查;');

                else

                    INSERT INTO `workflowitems` (`Id`, `Code`, `Name`, `TargetTableName`, `Description`, `VersionOfId`,

                                                 `VersionIndex`, `VersionState`, `PublishedById`, `PublishedAt`,

                                                 `ExpiredAt`,

                                                 `OverTime`, `TimeOut`, `RemindNum`, `IntervalHour`, `CreatedById`,

                                                 `CreatedAt`,

                                                 `UpdatedById`, `UpdatedAt`, `Deleted`, `DeletedById`, `DeletedAt`,

                                                 `DatabaseKey`)

                    VALUES (uuid(), CONCAT('Common-', InOrgCode, '-', InItemId), concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), InVersionOfId, 2, 'DRAFT',

                            null,

                            null,

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default'),

                           (InVersionOfId, CONCAT('Common-', InOrgCode, '-', InItemId),

                            concat(InOrgName, InOrgCode, InItemId),

                            'tb_workorderinfo', concat(InOrgName, InItemId, '流程-支持出发到达签到'), null, 1, 'PUBLISHED', null,

                            now(6),

                            null, 0, 0, 0, 0, null, now(6), null, now(6), 0, null, null, 'Default');



                    INSERT INTO `workflownodes` (`Id`, `WorkflowItemId`, `NodeType`, `Code`, `Name`, `SortOrder`,

                                                 `AllowCancel`,

                                                 `AllowStepCancel`, `IsNotify`, `HandlingConditionType`,

                                                 `AcceptedByPercentageN`,

                                                 `HandlingConditionExpression`, `Shape_X`, `Shape_Y`,

                                                 `CreatedById`, `CreatedAt`, `UpdatedById`, `UpdatedAt`, `Deleted`,

                                                 `DeletedById`,

                                                 `DeletedAt`)

                    select UUID()                                    as `Id`,

                           d.id                                      as `WorkflowItemId`,

                           a.`NodeType`,

                           replace(replace(a.code, '1004005', concat(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId)) as `Code`,

                           a.`Name`,

                           a.`SortOrder`,

                           a.`AllowCancel`,

                           a.`AllowStepCancel`,

                           a.`IsNotify`,

                           a.`HandlingConditionType`,

                           a.`AcceptedByPercentageN`,

                           a.`HandlingConditionExpression`,

                           a.`Shape_X`,

                           a.`Shape_Y`,

                           d.`CreatedById`,

                           now(6)                                       `CreatedAt`,

                           d.`UpdatedById`,

                           now(6)                                       `UpdatedAt`,

                           0                                            `Deleted`,

                           null                                         `DeletedById`,

                           null                                         `DeletedAt`

                    from workflownodes a

                             join workflowitems c

                                  on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                    where a.Deleted = 0

                    order by a.WorkflowItemId, a.SortOrder;

/*

INSERT INTO `workflownodes` (`Id`,`WorkflowItemId`,`NodeType`,`Code`,`Name`,`SortOrder`,`AllowCancel`,`AllowStepCancel`,`IsNotify`,`HandlingConditionType`,`AcceptedByPercentageN`,`HandlingConditionExpression`,`Shape_X`,`Shape_Y`,`CreatedById`,`CreatedAt`,`UpdatedById`,`UpdatedAt`,`Deleted`,`DeletedById`,`DeletedAt`,`AllowAutomaticAudit`)

VALUES

 (UUID(),DRAFTFlowId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),DRAFTFlowId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'START',CONCAT('Common-',InOrgCode,'-001_Start'),'开始',1,0,0,0,'PROCESSED BY ONE',null,null,859.2,50.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001001'),'调度工单',2,0,0,0,'PROCESSED BY ONE',null,null,859.2,350.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001002'),'出发签到',3,0,1,0,'PROCESSED BY ONE',null,null,859.245,630.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001004'),'到达签到',4,0,0,0,'PROCESSED BY ONE',null,null,859.247,934.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001005'),'提交处理结果',5,0,0,0,'PROCESSED BY ONE',null,null,859.2,1250.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001003'),'重新调度',6,0,0,0,'PROCESSED BY ONE',null,null,311.37,632.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001006'),'重新出发',7,0,0,0,'PROCESSED BY ONE',null,null,1390.13,931.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001007'),'质检',8,0,0,0,'PROCESSED BY ONE',null,null,860.296,1568.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'STEP',CONCAT('Code',InOrgCode,'001008'),'重新提交处理结果',9,0,0,0,'PROCESSED BY ONE',null,null,329.418,1572.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0),

 (UUID(),InVersionOfId,'END',CONCAT('Common-',InOrgCode,'-001_End'),'结束',10,0,0,0,'PROCESSED BY ONE',null,null,860.246,1873.0,'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),'14fd377b-1337-4900-ae55-ce2f8e27b012',now(6),0,null,null,0);

*/

                    insert into workflownodeactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                                   customexpression,

                                                   createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid,

                                                   deletedat)

                    select UUID()                                       AS id,

                           E.ID                                         AS workflownodeid,

                           A.actortype,

                           case A.ActorType when 'ROLE' then

                               (select UserCenterRoleId from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetid  end as targetid,

                           case A.ActorType when 'ROLE' then

                               (select RoleName from basic_orgroleinfo where Deleted = 0 and OrgCode = InOrgCode and RoleName = '运营' limit 1)

                               else A.targetname  end as targetname,

                           A.customtitle,

                           replace(A.customexpression, 'Code1004005005',

                                   CONCAT('Code', InOrgCode,InItemId, '005')) as customexpression,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                               deleted,

                           null                                            deletedbyid,

                           null                                            deletedat

                    from workflownodeactors a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # workflownodecommentactors 没数据

/*

insert into workflownodecommentactors(id, workflownodeid, actortype, targetid, targetname, customtitle,

                                      customexpression, createdbyid, createdat, updatedbyid, updatedat,

                                      deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.targetid, A.targetname, A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code','1041','001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownodecommentactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-','1041','-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodeactions;

                    insert into workflownodeactions(id, workflownodeid, subject, actiontype, workflowhandlingstatustype,

                                                    sortorder, scripts, createdbyid, createdat, updatedbyid, updatedat,

                                                    deleted,

                                                    deletedbyid, deletedat)

                    select UUID()                                    AS id,

                           E.ID                                      AS workflownodeid,

                           A.subject,

                           A.actiontype,

                           A.workflowhandlingstatustype,

                           A.sortorder,

                           replace(replace(A.scripts, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   CONCAT(InOrgCode, '-', InItemId)) as scripts,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                            deleted,

                           null                                         deletedbyid,

                           null                                         deletedat

                    from workflownodeactions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



#select * from workflowhandlingstatus;

                    insert into workflowhandlingstatus(id, workflownodeid, code, name, handlingstatustype, sortorder,

                                                       createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                       deletedbyid,

                                                       deletedat)

                    select UUID()                                                  AS id,

                           E.ID                                                    AS workflownodeid,

                           replace(a.code, '1004005', CONCAT(InOrgCode, InItemId)) As code,

                           A.name,

                           A.handlingstatustype,

                           A.sortorder,

                           e.createdbyid,

                           e.createdat,

                           e.updatedbyid,

                           e.updatedat,

                           0                                                          deleted,

                           null                                                       deletedbyid,

                           null                                                       deletedat

                    from workflowhandlingstatus a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT') and

                                     c.Code ='Common-1004-005'

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    #select * from workflownoderelatedactors; 无关联

/*

insert into workflownoderelatedactors(id, workflownodeid, actortype, handlingstatustype, targetid, targetname, customtitle, customexpression,

                                      createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() AS id, E.ID AS workflownodeid, A.actortype, A.handlingstatustype, A.targetid,A.targetname,

        A.customtitle,

       replace(A.customexpression,'Code1004005005',CONCAT('Code',InOrgCode,'001005')) as customexpression,

       e.createdbyid, e.createdat, e.updatedbyid, e.updatedat, 0 deleted, null deletedbyid, null deletedat

from workflownoderelatedactors a

join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

join workflowitems c on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in('PUBLISHED','DRAFT') and c.Code ='Common-1004-005'

left join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

where a.Deleted = 0

order by b.WorkflowItemId,b.SortOrder;*/



#select * from workflownodestepconditions;

                    insert into workflownodestepconditions(id, workflownodeid, workflowitemid, subject, handlingstatus,

                                                           sortorder,

                                                           scripts,

                                                           nextworkflownodeid, shape_x, shape_y,

                                                           createdbyid, createdat, updatedbyid, updatedat, deleted,

                                                           deletedbyid,

                                                           deletedat)

                    select UUID() AS id,

                           E.ID   AS workflownodeid,

                           D.ID   AS workflowitemid,

                           A.subject,

                           A.handlingstatus,

                           A.sortorder,

                           A.scripts,

                           E1.ID  AS nextworkflownodeid,

                           A.shape_x,

                           A.shape_y,

                           E.createdbyid,

                           E.createdat,

                           E.updatedbyid,

                           E.updatedat,

                           0         deleted,

                           NULL      deletedbyid,

                           NULL      deletedat

                    from workflownodestepconditions a

                             join workflownodes b on a.WorkflowNodeId = b.Id and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and

                                     c.VersionState in ('PUBLISHED', 'DRAFT')

                                      and c.Code ='Common-1004-005' and a.WorkflowItemId = c.id

                             left join workflowitems d

                                       on c.VersionState = d.VersionState and

                                          d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d.Deleted = 0

                             left join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                             left join workflownodes b1 on a.NextWorkflowNodeId = b1.Id and b1.Deleted = 0

                             left join workflowitems c1

                                       on b1.WorkflowItemId = c1.Id and c1.Deleted = 0 and

                                          c1.VersionState in ('PUBLISHED', 'DRAFT')

                                           and c1.Code ='Common-1004-005' and a.WorkflowItemId = c1.id

                             left join workflowitems d1

                                       on c1.VersionState = d1.VersionState and

                                          d1.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                          d1.Deleted = 0

                             left join workflownodes e1

                                       on b1.name = e1.Name and d1.id = e1.WorkflowItemId and e1.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;



                    # select * from workflowprocessstates;

#select * from workflowrelatedactors;#空表

/*

INSERT INTO `workflowrelatedactors` (id, workflowitemid, actortype, targetid, targetname, customtitle, customexpression,

                                     createdbyid, createdat, updatedbyid, updatedat, deleted, deletedbyid, deletedat)

select UUID() as `Id`,d.id as `WorkflowItemId`,a.`actortype`, a.targetid, a.targetname, a.customtitle, a.customexpression,

       d.`CreatedById`,now(6) `CreatedAt`,d.`UpdatedById`,now(6) `UpdatedAt`,

       0 `Deleted`,null `DeletedById`,null `DeletedAt`

 from workflowrelatedactors a

join workflowitems c on a.WorkflowItemId = c.Id and c.Deleted = 0 and c.Code ='Common-1004-005' and c.VersionState in('PUBLISHED','DRAFT')

 join workflowitems d on c.VersionState = d.VersionState and d.code = CONCAT('Common-',InOrgCode,'-',InItemId) and d.Deleted = 0

where a.Deleted = 0

order by a.WorkflowItemId;

*/

                    insert into basic_workstepinfo(workflowcode, nodecode, nodename, nodestatus, workflowstepname,

                                                   workflowsteptype, inserttime, deleted)

                    select CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                           replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                   concat(InOrgCode, '-', InItemId))   as nodecode,

                           a.nodename,

                           a.nodestatus,

                           a.workflowstepname,

                           a.workflowsteptype,

                           now()                                          inserttime,

                           0                                              deleted

                    from basic_workstepinfo a

                             join workflownodes b on a.NodeCode = b.Code and b.Deleted = 0

                             join workflowitems c

                                  on b.WorkflowItemId = c.Id and c.Deleted = 0 and c.VersionState in ('PUBLISHED') and

                                     c.Code ='Common-1004-005'

                                      and a.WorkFlowCode = c.Code

                             join workflowitems d

                                  on c.VersionState = d.VersionState and

                                     d.code = CONCAT('Common-', InOrgCode, '-', InItemId) and

                                     d.Deleted = 0

                             join workflownodes e on b.name = e.Name and d.id = e.WorkflowItemId and e.Deleted = 0

                    where a.Deleted = 0

                    order by b.WorkflowItemId, b.SortOrder;

                    if (select 1

                        from basic_workflowstatus

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0) is true then

                        update basic_workflowstatus

                        set Deleted = 1

                        where workflowcode = CONCAT('Common-', InOrgCode, '-', InItemId)

                          and Deleted = 0;

                    else

                        insert into basic_workflowstatus(workstatus, workstatuscode, workstatusname, workflowcode,

                                                         workflowname, nodecode, nodename, nodecategory, orgcode,

                                                         ifsupportclosed,

                                                         inserttime, deleted)

                        select workstatus,

                               null                                           workstatuscode,

                               workstatusname,

                               CONCAT('Common-', InOrgCode, '-', InItemId) as workflowcode,

                               concat(InOrgName, InOrgCode, InItemId)      as workflowname,

                               replace(replace(a.nodecode, '1004005', CONCAT(InOrgCode, InItemId)), '1004-005',

                                       concat(InOrgCode, '-', InItemId))   as nodecode,

                               a.nodename,

                               replace(a.nodecategory, '1004', InOrgCode)  as nodecategory,

                               InOrgCode                                   as orgcode,

                               a.ifsupportclosed,

                               now()                                          inserttime,

                               0                                              deleted

                        from basic_workflowstatus a

                        where a.WorkFlowCode ='Common-1004-005'

                          and a.Deleted = 0;



                        insert into basic_workflownoderelation(id, operationid, operationcode, operationname,

                                                               workflowstatusid, nodecode, nodename, sortorder, inserttime)

                        select

                        fn_nextval('FA') as id,

                               a.OperationId,

                               a.OperationCode,

                               a.OperationName,

                               b1.id as workflowstatusid,

                               b1.NodeCode,

                               b1.NodeName,

                               a.SortOrder,

                               now()

                               from basic_workflownoderelation a

                        join basic_workflowstatus b on a.NodeCode = b.NodeCode and b.Deleted = 0 and b.OrgCode = '1004' and a.WorkFlowStatusId = b.id and b.WorkFlowCode='Common-1004-005'

                        join basic_workflowstatus b1 on b.Nodename = b1.Nodename and b1.Deleted = 0 and b1.OrgCode = InOrgCode and b1.WorkFlowCode=CONCAT('Common-', InOrgCode, '-', InItemId)

                        where  (a.NodeCode like 'Code1004005%' or a.NodeCode in('Common-1004-005_End','STOPPED','Common-1004-005_Start')) and a.OperationCode like '1000%' and a.Deleted = 0

                        ;

                    END IF;

                END IF;

            END IF;

        END IF;

    END IF;

    #select * from tb_workflowjsoninfo;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

    #事务提交/回滚模块

    IF sys_ErrCode <> '00000' THEN

        SET Result = 1;

        ROLLBACK;

        update basic_ordertypeinfo

        set IfInitialize = 3

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

    ELSE

        SET Result = 0;

        update basic_ordertypeinfo

        set IfInitialize = 1

        where TypeCode = InOrderType

          and ServiceProviderCode = InOrgCode

          and Deleted = 0;

        COMMIT;

    END IF; #返回结果



    SELECT Result         AS ErType,

           sys_ErrMessage AS ErMessage; #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                      AS IsSuccess,

           'CreateWorkFlow'                            AS Logger,

           'proc_CreateWorkFlow'                       AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

           sys_ErrCode                                 AS ErrCode,

           concat(InOrgCode, InItemId, sys_ErrMessage) AS ErrMessage,

           NOW()                                       AS LogTime;

END

proc_HomeUserArea

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeUserArea \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeUserArea`()
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_人员覆盖区域统计(每日)
#CreatedAt: 2023-08-18 10:34:43
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();
	
	#开启事务
	START TRANSACTION;
		
	# 删除7天前的数据
	# DELETE FROM home_userarea WHERE CheckDate '00000'
	THEN
		SET Result=1;
		ROLLBACK;
	ELSE
		SET Result=0;
		COMMIT;
	END IF;  

  	#返回结果
  	SELECT Result AS ErType,sys_ErrMessage AS ErMessage;

  	#日志记录生成模块
  	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)
  	SELECT Result AS IsSuccess,
           'HomeReport' AS Logger,
           'proc_HomeUserArea' AS ProcedureName,
           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,
           sys_ErrCode AS ErrCode,
  	       sys_ErrMessage AS ErrMessage,
           NOW() AS LogTime;
		
END

proc_WorkflowJsonCheck_10day

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonCheck_10day \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonCheck_10day`()
    SQL SECURITY INVOKER
    COMMENT '每日验证工作流冗余表是否正确_补充单据'
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE InWorkOrderId CHAR(12);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



#创建临时表

DROP TABLE IF EXISTS tm_workjsonstep;

CREATE TEMPORARY TABLE tm_workjsonstep(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



DROP TABLE IF EXISTS tm_workjsonstep2;

CREATE TEMPORARY TABLE tm_workjsonstep2(

  WorkOrderId CHAR(12) PRIMARY KEY,

  CNT INT,

  KEY `1` (CNT)

);



#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



#1.验证所有单是否都有冗余

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,CorrectStatus)

SELECT a.Id,1,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

#AND a.CreatedAt<=DATE_ADD(NOW(),INTERVAL -10 MINUTE)

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d 00:00:00')

AND a.CreatedAt<=NOW()

AND a.Deleted=0

AND NOT EXISTS(SELECT 1

FROM check_workflowjsonexclude c

WHERE c.WorkOrderId=a.Id);



#2.验证tb_workflowjson表内数据是否都在工单里



SELECT a.*

FROM tb_workflowjsoninfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workorderinfo b

WHERE a.WorkOrderId=b.Id)

AND a.Deleted=0;





#3.验证每天新单步骤总数是否一致

##3.1写入步骤数据

INSERT INTO tm_workjsonstep(WorkOrderId,CNT)

SELECT s.Id,COUNT(1)

FROM (

SELECT DISTINCT a.Id,f.CommonStepCode

FROM tb_workorderinfo a

INNER JOIN workflowcompleteitems b

  ON b.TargetEntityId=a.Id

  AND b.Deleted=0

INNER JOIN workflowcompletesteps c

  ON c.RuntimeItemId=b.Id

  AND c.Deleted=0

INNER JOIN workflownodes d

  ON d.Id=c.WorkflowNodeId

  AND d.Deleted=0

INNER JOIN workflowitems e

  ON e.Id=b.WorkflowItemId

  AND e.Deleted=0

INNER JOIN tm_commonstepinfo f

  ON f.ItemCode=e.Code

  AND f.StepCode=d.Code

  AND f.Deleted=0

WHERE a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAtm.CNT;



#更新原错误Json拼接

UPDATE check_workflowjsoninfo a,

  tb_workflowjsoninfo b,

  tm_workjsonstep c

SET a.UnCorrectJson=b.StepJson

WHERE a.WorkOrderId=b.WorkOrderId

  AND b.WorkOrderId=c.WorkOrderId

  AND a.CorrectStatus=0

  AND a.Deleted=0

  AND b.Deleted=0;



#4.查找10分钟之前还没写入进来的单

INSERT INTO check_workflowjsoninfo(WorkOrderId,CheckType,CheckDate,UnCorrectJson,CorrectStatus)

SELECT a.Id,4,DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d'),NULL,0

FROM tb_workorderinfo a

WHERE NOT EXISTS(

SELECT 1

FROM tb_workflowjsoninfo b

WHERE b.WorkOrderId=a.Id)

AND a.WorkStatus>=3

AND a.Deleted=0

AND a.CreatedAt>=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -10 DAY),'%Y-%m-%d')

AND a.CreatedAt
                

proc_DeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DeleteOrderInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_DeleteOrderInfo`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DeleteOrderInfo`(

		InOrderId char(12),

		InDeletedById char(36),

		InDeletedAt datetime

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年4月19日

#Comment: 工单删除

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





#删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkorderID=InOrderId

  AND Deleted=0;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=InDeletedById,

  a.DeletedAt=InDeletedAt,

  a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=1

  WHERE a.Id=InOrderId

  AND Deleted=0;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=1

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=0;



  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_DeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_flinktest

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_flinktest \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_flinktest`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_flinktest`()
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Comment: flnik测试



SET @i=1;

WHILE @i<500 DO

	

	INSERT INTO flink_tablea(Id,TABLEAFIELDA,TABLEAFIELDB) 

	SELECT @i,@i,@i;

	

	SET @j=1;

	  WHILE @j<500 DO

	

	  INSERT INTO flink_tableb(TABLEBFIELDA,TABLEBFIELDB)

	  SELECT @i,@j;

	

	  SET @j=@j+1;

		

		#SELECT SLEEP(0.5);

		

	  END WHILE;

	

	SET @i=@i+1;

	

END WHILE;



END

proc_AfcWorkOrderUnFollowDays

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcWorkOrderUnFollowDays \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcWorkOrderUnFollowDays`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcWorkOrderUnFollowDays`()
    COMMENT '壹好车服-更新金融未到退案时间的工单未跟进天数(每天)'
BEGIN

    #Author:Wangxh

    #Create: 2022年02月15日

    #Update:2024-04-16



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #开启事务

    START TRANSACTION;

    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT(b.v_lastnegotiatortime, '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is not null;



    update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = ifnull(

            json_set(BussinessJson, '$.UnFollowDays',

                     TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                   DATE_FORMAT(NOW(), '%Y-%m-%d'))),

            JSON_OBJECT('UnFollowDays',

                        TIMESTAMPDIFF(day, date_add(DATE_FORMAT((

                                                                 SELECT c.DoneAt

                                                                 FROM tb_workflowinfo c

                                                                 WHERE c.StepName = '派单'

                                                                   AND a.WorkOrderId = c.WorkOrderId

                                                                   AND c.Deleted = 0

                                                                 ORDER BY c.DoneAt DESC

                                                                 LIMIT 1

                                                             ), '%Y-%m-%d'), interval 1 day),

                                      DATE_FORMAT(NOW(), '%Y-%m-%d'))))

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_lastnegotiatortime is null

      and exists(SELECT 1 FROM tb_workflowinfo c WHERE c.StepName = '派单' AND a.WorkOrderId = c.WorkOrderId AND c.Deleted = 0 and c.DoneAt is not null);



    update tb_afcworkfinanceinfo a,

           tb_workbussinessjsoninfo b

    set b.BussinessJson = json_set(BussinessJson, '$.UnFollowDays', 0)

    where a.deleted = 0

      and a.RetreatTime >= now()

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      #and ifnull(b.v_lastnegotiatortime) is not null

      #and b.v_FollowFrequency = 1

      and b.v_UnFollowDays = -1;

/*

     update tb_afcworkfinanceinfo a,

        tb_workbussinessjsoninfo b

    set b.BussinessJson = json_remove(BussinessJson, '$.UnFollowDays')

    where a.deleted = 0

      and a.WorkOrderId = b.WorkOrderId

      and b.Deleted = 0

      and b.v_FollowFrequency = 0;



 */



    #修改AFC明细报表

    UPDATE rp_afcworkorderdetail A,tb_workbussinessjsoninfo B,tb_afcworkfinanceinfo C

        SET A.UnFollowDays = B.v_UnFollowDays

    WHERE A.Deleted = 0

    AND A.WorkOrderId = B.WorkOrderId

    AND B.Deleted = 0

    AND A.WorkOrderId = C.WorkOrderId

    AND C.Deleted = 0

    AND C.RetreatTime >= now();



    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        ROLLBACK;

    ELSE

        SET Result = 0;

        COMMIT;

    END IF;

    #返回结果

    #SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger,

                                 ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                       AS IsSuccess,

           'AfcWorkOrderUnFollowDays'                   AS Logger,

           'proc_AfcWorkOrderUnFollowDays'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())  AS TimeSpan,

           sys_ErrCode                                  AS ErrCode,

           IF(Result = 1, CONCAT(sys_ErrMessage), null) AS ErrMessage,

           NOW()                                        AS LogTime;



END

proc_CreateOrgList

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_CreateOrgList \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_CreateOrgList`(InOrgCode varchar(50))
    DETERMINISTIC
BEGIN

         #Author: wangxh

 #Create: 2022-10-31 11:48:24

 #Comment: 创建商户-列表配置

 #日志记录定义模块

 DECLARE sys_StartTime DATETIME;

 DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000'; 

 DECLARE sys_ErrMessage VARCHAR(200); 

 DECLARE Result INT(1) DEFAULT 0;

 DECLARE InOrgName varchar(50);

 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN

     GET DIAGNOSTICS CONDITION 1 sys_ErrCode= RETURNED_SQLSTATE,

         sys_ErrMessage= MESSAGE_TEXT;

 END;

 SET sys_StartTime = CURRENT_TIMESTAMP(); #开启事务

 

 START TRANSACTION; #修改隔离级别,防止对业务表过长的共享锁占用



 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



 select ProviderName into InOrgName

 from basic_serviceprovider

 where ProviderCode = InOrgCode

   and Deleted = 0;

 #通用工单

          #工单维护/区域工单/质检工单/请求关闭工单-通用

          #serviceordercenter/serviceordercenterhis.common_entityinfo 通用域_实体信息表 使用通用配置,ID:ET9999999998  测试:ET9999999823

          #serviceordercenter/serviceordercenterhis.common_entitysuit 通用域_实体适用页面(功能) 使用通用配置,EntityId:ET9999999998

          #serviceordercenter/serviceordercenterhis.common_propertyinfo 通用域_属性信息表 使用通用配置,EntityId:ET9999999998

          #适用页面信息 一服务商一个,在Apollo配置,ServiceProviderListType.ListType1004

 if (select 1

     from basic_apollo

     where NameSpace = 'ServiceProviderListType'

       and `Key` = concat('ListType',InOrgCode)

       and Deleted = 0) is true then

     set Result = 1;

     rollback;

     set sys_ErrCode = '10000';

     set sys_ErrMessage = concat(ifnull(sys_ErrMessage,''), ' ', InOrgName, '已有Apollo适用页面配置,请联系管理员核查;');

 else

    INSERT INTO `basic_apollo` (NameSpace,`Key`,`Value`,`Remark`)

 VALUES ('ServiceProviderListType', concat('ListType',InOrgCode),

         '{"Value": [

          {

            "OrgCode": "1004",

            "OrgName": "壹好车服测试商户",

            "ListType": [

              {

                "ListCode": "orderMaintenance",

                "ListName": "运营工单",

                "SortOrder": 1

              },

              {

                "ListCode": "areaOrder",

                "ListName": "监管工单",

                "SortOrder": 2,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "qualityOrder",

                "ListName": "待质检工单",

                "SortOrder": 3,

                "PermissionType": "quality",

                "LimitSql": "(WorkStatus = ''11'' or (WorkStatus = ''8'' and AuditStatus = 1))  and exists(select 1 from tb_recordinfo where {{tableName}}.id = workorderid and deleted = 0)",

                "RuleGroupCodes": "EHCFRule003",

                "SortField": "CompleteTime asc"

              },

              {

                "ListCode": "requestCloseOrder",

                "ListName": "请求关闭工单",

                "SortOrder": 4,

                "LimitSql": "typestatus in(2,3)"

              },

              {

                "ListCode": "myToDoOrder",

                "ListName": "我的待办-通用(App)",

                "SortOrder": 150,

                "PermissionType": "todo",

                "LimitSql": "EXISTS(select 1 from tb_operatinginfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.OperCode=@operCode )",

                "RuleGroupCodes": null,

                "SortField": null

              },

              {

                "ListCode": "myAreaOrder",

                "ListName": "我区域内的工单-通用(App)",

                "SortOrder": 151,

                "PermissionType": "supervise_capability",

                "LimitSql": null,

                "RuleGroupCodes": "EHCFRule001,EHCFRule002,EHCFRule003",

                "SortField": null

              },

              {

                "ListCode": "myDoneOrder",

                "ListName": "我办理过的工单-通用(App)",

                "SortOrder": 152,

                "PermissionType": "done",

                "LimitSql": "WorkStatus<>10 AND EXISTS ( select 1 from tb_workflowinfo g where {{tableName}}.id = g.WorkOrderId and g.Deleted = 0 and g.StepName in(''提交处理结果'',''重新提交结果'') and g.OperCode=@operCode and g.DoneAt <= NOW())",

                "RuleGroupCodes": null,

                "SortField": null

              }

            ]

          }

        ]}', '');

    update serviceordercenter.basic_apollo

set Value= json_set(Value, '$.Value[0].OrgCode', InOrgCode,'$.Value[0].OrgName', InOrgName)

where Value ->> '$.Value[0].OrgCode' = '1004'

  and NameSpace = 'ServiceProviderListType'

  and `Key`= concat('ListType',InOrgCode)

  and Deleted = 0;

          #serviceordercenter/serviceordercenterhis.common_listsearchproperty 通用域_搜索字段配置项

         

/*select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       'now()' as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('适用全部-附件', '通用列表配置')*/

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

select `SuitFunctionCode`,

       `ConditionType`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertyTypeCode`,

       `PropertySource`,

       `IsPropertyShow`,

       `RemindRemark`,

       `DataType`,

       `IsMultiSelect`,

       `IfSelect`,

       `SearchCondition`,

       `SearchType`,

       `IfShow`,

       `DataSourceType`,

       `DataSourceJson`,

       `ActionsJson`,

       `ValueField`,

       `LableField`,

       `PublishState`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `DataFieldName`,

       `SortOrder`,

       `ComponentInfoJson`,

       now() as CreatedAt, #替换‘’

       deleted

  from common_listsearchproperty

 where OrgCode= '1004'

   and Deleted= 0

   and EntityName in ('通用列表配置')

   and EntityId='ET9999999823';



/*

INSERT INTO `common_listsearchproperty` (`SuitFunctionCode`,`ConditionType`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertyTypeCode`,`PropertySource`,`IsPropertyShow`,`RemindRemark`,`DataType`,`IsMultiSelect`,`IfSelect`,`SearchCondition`,`SearchType`,`IfShow`,`DataSourceType`,`DataSourceJson`,`ActionsJson`,`ValueField`,`LableField`,`PublishState`,`OrgCode`,`OrgName`,`DataFieldName`,`SortOrder`,`ComponentInfoJson`,`CreatedAt`,`Deleted`)

VALUES

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',3,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',4,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'btan',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',6,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requestclosename',7,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999098','regionQuery','服务地址','string',2,1,'"请选择省/市/区"','pro-urban-areas',0,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'regionquery',2,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\"model\\": {\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\"name\\": \\"##\\",\\"paging\\": {\\"pageIndex\\": 1,\\"pageSize\\": 100,\\"noCount\\": true}}}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"请输入联系人姓名"','text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999117','appCode','工单编号','string',1,1,null,'text',null,0,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'appcode',0,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,null,'select',0,0,'eq',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,null,'select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',2,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,null,'text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,null,'text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',5,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',6,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',7,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',8,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',9,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',10,null,now(),0),

('orderMaintenance',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999116','orderType','工单类型','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{\\n    \\"url\\": \\"OrderFeather/GetOrderFeatherListByModel\\",\\n    \\"model\\":{\\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n        \\"typeStatus\\":\\"1\\",\\n        \\"paging\\": {\\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','typeCode','typeName',1,InOrgCode,InOrgName,'ordertype',1,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999090','serviceName','服务人员','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'servicename',2,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"模糊查询"','text',null,null,'cn',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'createdat',4,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',6,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',7,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999097','linkMan','联系人','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linkman',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',8,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999078','orderCompleteTime','完成时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'ordercompletetime',11,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('areaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999077','closedAt','关闭时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'closedat',9,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,0,'in',1,1,1,'[{"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}, {"label": "待提交", "value": "0", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',10,null,now(),0),

('qualityOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择"','select',1,null,'in',1,1,2,'"{ \\n    \\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",  \\n    \\"model\\":{ \\n        \\"ServiceProviderCode\\": \\"!MyProviderCode!\\",  \\n        \\"name\\":\\"##\\", \\n        \\"paging\\": {  \\n            \\"pageIndex\\": 1,\\n            \\"pageSize\\": 100,\\n            \\"noCount\\": true  \\n       }\\n    }\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',11,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',12,null,now(),0),

('requestCloseOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"精确查询"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',13,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',4,null,now(),0),

('myToDoOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,0,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话','string',1,1,'"请输入联系人电话"','text',null,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'linktel',1,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间','date',1,1,'["从(0点)","到(24点)"]','date-next',null,null,'bt',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'requiredtime',2,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址','string',1,1,'"请选择省/市/区"','pro-urban-areas',0,null,'eq',1,1,0,'{}','{}','','',1,InOrgCode,InOrgName,'serviceaddress',3,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目','string',1,1,'"请选择服务科目"','checkbox',null,null,'in',1,1,2,'"{\\n\\t\\"url\\": \\"Subject/SubjectManage/GetServiceSubjectList\\",\\n\\t\\"model\\": {\\n\\t\\t\\"ServiceProviderCode\\": \\"!MyProviderCode!\\",\\n\\t\\t\\"name\\": \\"##\\",\\n\\t\\t\\"paging\\": {\\n\\t\\t\\t\\"pageIndex\\": 1,\\n\\t\\t\\t\\"pageSize\\": 100,\\n\\t\\t\\t\\"noCount\\": true\\n\\t\\t}\\n\\t}\\n}"','{}','code','name',1,InOrgCode,InOrgName,'subjectcode',4,null,now(),0),

('myDoneOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提", "value": "0", "default": false}, {"label": " 调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0),

('myAreaOrder',1,'ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态','string',1,1,'"请选择工单状态"','select',1,null,'in',1,1,1,'[{"label": "待提交", "value": "0", "default": false}, {"label": "调度中", "value": "3", "default": false}, {"label": "重新调度", "value": "5", "default": false}, {"label": "已接单", "value": "6,17", "default": false}, {"label": "已完成", "value": "9", "default": false}, {"label": "已关闭", "value": "10", "default": false}, {"label": "质检中", "value": "11", "default": false}, {"label": "质检驳回", "value": "12", "default": false}, {"label": "已出发", "value": "13", "default": false}, {"label": "已到达", "value": "14,15", "default": false}]','{}','','',1,InOrgCode,InOrgName,'workstatus',5,null,now(),0);

*/

#serviceordercenter/serviceordercenterhis.common_listshowproperty 通用域_展示字段配置项

/*select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       'InOrgCode' as `OrgCode`, #替换‘’

       'InOrgName' as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       'now()' as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置');*/

 INSERT INTO `common_listshowproperty` (`OrderType`,`OrderTypeName`,`SuitFunctionCode`,`EntityId`,`EntityName`,`PropertyId`,`PropertyCode`,`PropertyName`,`PropertySource`,`IsPropertyShow`,`PublishState`,`GroupCode`,`OrgCode`,`OrgName`,`ShowType`,`ShowDetailJson`,`IfShow`,`FieldRegion`,`DataFieldName`,`SortOrder`,`CreatedAt`,`Deleted`)

 select `OrderType`,

       `OrderTypeName`,

       `SuitFunctionCode`,

       `EntityId`,

       `EntityName`,

       `PropertyId`,

       `PropertyCode`,

       `PropertyName`,

       `PropertySource`,

       `IsPropertyShow`,

       `PublishState`,

       `GroupCode`,

       InOrgCode as `OrgCode`, #替换‘’

       InOrgName as `OrgName`,

       `ShowType`,

       `ShowDetailJson`,

       `IfShow`,

       `FieldRegion`,

       `DataFieldName`,

       `SortOrder`,

       now() as `CreatedAt`, #替换‘’

       `Deleted`

  from common_listshowproperty

 where OrgCode= '1004'

   and Deleted= 0

  and EntityName in ('通用列表配置')

  and EntityId='ET9999999823';

 /*VALUES

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999072','requestCloseName','请求关闭人',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','requestclosename',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999074','requestCloseTime','请求时间',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm:ss\\" }"',1,'body','requestclosetime',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999071','appointReason','请求原因',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','appointreason',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"yyyy-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,5,'"{\\n\\"type\\":\\"map\\",\\n\\"icon\\":\\"location\\",\\n\\"iconPosition\\":\\"valueRight\\"\\n}"',1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,0,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999109','subjectName','科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'body','subjectname',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999094','createdAt','建单时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','createdat',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999115','orderTypeName','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertypename',1,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','orderMaintenance','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求时间',1,1,1,1,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-DD HH:mm\\" }"',1,'body','requiredtime',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系人',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','服务地址',1,1,1,3,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','qualityOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','requestCloseOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myToDoOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myAreaOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999105','serviceAddress','地址',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','serviceaddress',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999107','requiredTime','要求',1,1,1,3,InOrgCode,InOrgName,5,'"{  \\"format\\":\\"YYYY-MM-dd HH:mm\\" }"',1,'body','requiredtime',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999097','linkMan','联系',1,1,1,4,InOrgCode,InOrgName,0,null,1,'body','linkman',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系',1,1,1,4,InOrgCode,InOrgName,2,null,1,'body','linktel',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999117','appCode','工单编号',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','appcode',0,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999116','orderType','工单类型',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','ordertype',1,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999110','subjectCode','服务科目',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','subjectcode',2,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999091','serviceCode','服务人员',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','servicecode',3,now(),0),

 ('0000','适用全部','myDoneOrder','ET9999999823','通用列表配置','AT9999999114','workStatus','工单状态',1,1,1,1,InOrgCode,InOrgName,0,null,1,'header','workstatus',4,now(),0),

 ('0000','适用全部','areaOrder','ET9999999823','通用列表配置','AT9999999096','linkTel','联系电话',1,1,1,2,InOrgCode,InOrgName,0,null,1,'body','linktel',1,now(),0);

*/

    end if;

 #恢复隔离级别

 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

 #事务提交/回滚模块

 IF sys_ErrCode <> '00000' THEN

     SET Result = 1; ROLLBACK;

 ELSE

     SET Result = 0; COMMIT;

 END IF; #返回结果



 #日志记录生成模块

 SELECT Result         AS ErType,

        sys_ErrMessage AS ErMessage;



 INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

 SELECT Result                                      AS IsSuccess,

        'CreateOrgList'                             AS Logger,

        'proc_CreateOrgList'                        AS ProcedureName,

        TIMESTAMPDIFF(SECOND, sys_StartTime, NOW()) AS TimeSpan,

        sys_ErrCode                                 AS ErrCode,

        sys_ErrMessage                              AS ErrMessage,

        NOW()                                       AS LogTime;





     END

proc_UnDeleteOrderInfo

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_UnDeleteOrderInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_UnDeleteOrderInfo`(

		InOrderId char(12),

        InDeletedId varchar(36)

)
    SQL SECURITY INVOKER
BEGIN

#Author: wangcw

#Create: 2019年9月4日

#Comment: 工单删除恢复

	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

  DECLARE Result INT(1) DEFAULT 0;

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

  SET sys_StartTime = CURRENT_TIMESTAMP();



	#开启事务

	START TRANSACTION;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



  #删除工单主表

  UPDATE tb_workorderinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除工单备案信息表

  UPDATE tb_workserviceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约信息表

  UPDATE tb_appointment a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除预约拼接信息表

  UPDATE tb_appointmentconcat a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除已办信息表

  UPDATE tb_operatedinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除待办信息表

  UPDATE tb_operatinginfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备案信息表

  UPDATE tb_recordinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除备注信息表

  UPDATE tb_remarkinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车架号比对信息表

  UPDATE tb_vindiffinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除车辆信息表

  UPDATE tb_workcarinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除费用明细信息表

  UPDATE tb_workfeedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除费用信息表

  UPDATE tb_workfeeinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修物料信息表

  UPDATE tb_workfixgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修商品信息表

  UPDATE tb_workfixgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除检修其他项目明细信息表

  UPDATE tb_workfixitemdetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除检修其他项目信息表

  UPDATE tb_workfixiteminfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除工作流信息表

  UPDATE tb_workflowinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除商品明细信息表

  UPDATE tb_workgoodsdetail a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除其他商品明细信息表

  UPDATE tb_workgoodsdetail_other a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除商品信息表

  UPDATE tb_workgoodsinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除保险信息表

  UPDATE tb_workinsurinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除状态信息表

  UPDATE tb_workorderstatus a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除附件信息表

  UPDATE tb_workresourceinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除录错调整明细信息表

  UPDATE tb_workrevisedetail a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除录错调整信息表

  UPDATE tb_workreviseinfo a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId;



  #删除售后信息表

  UPDATE tb_workaftersaleinfo a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单异常明细

  UPDATE `tb_afcabnormalorderinfo` a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeedetail` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单费用相关信息

  UPDATE `tb_afcfeeinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

	AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款提报表

  UPDATE `tb_afcpaymentreport` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单回款审批表

  UPDATE `tb_afcpaymentreportlog` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



      #删除AFC金融工单信贷信息表

  UPDATE `tb_afcworkfinanceinfo`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





      #删除AFC金融工单备案信息表

  UPDATE `tb_afcworkfinancerecord`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



    #删除AFC金融工单冗余信息表

  UPDATE `tb_afcworkorderinfo`    a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



  #删除AFC金融工单明细表

  UPDATE `rp_afcworkorderdetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkorderID=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;





    #删除车务资料提交、返还信息表

  UPDATE `tb_vhsworkfilereceiveinfo`  a

  set

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





    #删除车务工单冗余信息表

  UPDATE `tb_vhsworkorderinfo` a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单冗余信息表备案信息子表

  UPDATE `tb_vhsworkorderrecorddetail`  a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除车务工单备案信息表

  UPDATE `tb_vhsworkrecordinfo`   a

  set a.DeletedById=NULL,

  a.DeletedAt=NULL,

  a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1

  AND a.DeletedById=InDeletedId;



   #删除工单评价信息表

  UPDATE `tb_workorderevaluateinfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



  #删除充电桩完成工单明细表

  UPDATE `rp_chpworkorderdetail`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;



    #删除充电桩冗余工单明细表

  UPDATE `tb_chpworkorderinfo`   a

  set a.Deleted=0

  WHERE a.Id=InOrderId

  AND Deleted=1;



    #删除业务域-工单业务信息冗余JSON表

  UPDATE `tb_workbussinessjsoninfo`   a

  set a.Deleted=0

  WHERE a.WorkOrderId=InOrderId

  AND Deleted=1;





  #恢复隔离级别

	SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



	#事务提交/回滚模块

	IF sys_ErrCode <> '00000'

	THEN

		SET Result=1;

		ROLLBACK;

	ELSE

		SET Result=0;

		COMMIT;

	END IF;



  #返回结果

  SELECT Result AS ErType,sys_ErrMessage AS ErMessage;



  #日志记录生成模块

  INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

  SELECT Result AS IsSuccess,

  'OrderDelete' AS Logger,

  'proc_UnDeleteOrderInfo' AS ProcedureName,

  TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

  sys_ErrCode AS ErrCode,

  sys_ErrMessage AS ErrMessage,

  NOW() AS LogTime;



END

proc_HomeOrderdetail

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_HomeOrderdetail \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_HomeOrderdetail`(IN InDate date, IN EndDate date)
    SQL SECURITY INVOKER
BEGIN
#Author: wangcw
#Comment: 首页_工单数据明细(每日)
#CreatedAt: 2023-08-29 13:29:44
	#日志记录定义模块
	DECLARE sys_StartTime  DATETIME;
	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';
	DECLARE sys_ErrMessage VARCHAR(200);
	DECLARE Result INT(1) DEFAULT 0;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
	BEGIN GET DIAGNOSTICS CONDITION 1
	sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;
	END;
	SET sys_StartTime = CURRENT_TIMESTAMP();

	#开启事务
	START TRANSACTION;

	# 删除今日单据
	# DELETE FROM home_orderdetaildaily WHERE CheckDate = CURRENT_DATE();

	# 写入表
    # 1.下单时间为昨日 tb_workorderinfo.CreatedAt 建单时间
    INSERT INTO home_orderdetaildaily(DetailType,WorkOrderId,WorkStatus,ProviderCode,OrderType,CustomerId,CustomerName,
    ProCode,ProName,CityCode,CityName,AreaCode,AreaName,ServiceId,ServiceCode,ServiceName,DetailTime,CheckDate)
    SELECT 1,a.Id,a.WorkStatus,IFNULL(a.ServiceProviderCode,'1001') AS ServiceProviderCode,a.OrderType,a.CustomerId,
           a.CustomerName,a.ProCode,a.ProName,a.CityCode,a.CityName,a.AreaCode,a.AreaName,
           b.ServiceId,b.ServiceCode,b.ServiceName,a.CreatedAt,CURRENT_DATE()
    FROM tb_workorderinfo a,
         tb_workserviceinfo b
    WHERE a.Id=b.WorkOrderId
      AND a.CreatedAt>=InDate
      AND a.CreatedAt=InDate
      AND d.StartedAt=InDate
      AND d.StartedAt=InDate
      AND a.EffectiveSuccessfulTime=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.DoneAt=InDate
      AND c.DoneAt=InDate
      AND c.DoneAt=InDate
      AND b.ClosedAt
                

proc_AfcCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_AfcCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_AfcCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_AfcCompletedWorkOrderById`(IN InWorkOrderId char(12), IN InWorkSatus smallint)
    COMMENT 'AFC根据id获取已完成工单明细'
BEGIN

    #Create: 2021年01月05日



    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_afcworkorderdetail WHERE WorkOrderId = InWorkOrderId;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    INSERT INTO `rp_afcworkorderdetail` (WorkOrderId, `OrderType`, `ContractNumber`, `SubjectName`, `SubjectCode`,

                                         `CustomerName`, `CustomerId`,

                                         `WorkStatus`, `AppCode`, `WorkStatusName`, `CreatePersonCode`,

                                         `CreatePersonName`, `CreatedTime`, `UserName`,

                                         `RequiredTime`, `CurrentPersonCode`, `CurrentPersonName`, `OverdueDays`,

                                         `IntervieweeType`, `IntervieweeName`,

                                         `Typee`, `ProCode`, `ProName`, `CityCode`, `CityName`, `AreaCode`, `AreaName`,

                                         `Address`, `IsNightVisit`, `TripMode`,

                                         `Achievements`, `NightVisitFee`, `TotalDistance`, `ReturnDistance`, `OilPrice`,

                                         `OilSubsidy`, `RoadBridgePrice`,

                                         `InTrafficPrice`, `TaxiFare`, `Accommodation`, `DifferenceFare`,

                                         `LimitationFee`, `ReportingQuality`, `OverduePrincipal`,

                                         `RefundPrice`, ReceiveAmounts, `UseTime`, `AddressType`, `IsFindPerson`,

                                         `IsOtherAccess`, `AddressInfoTopName`,

                                         `IsSecondLink`, `CustomerIsContact`, `LinkmanIsContact`, `IsFindCar`,

                                         `CarUseInfo`, `CustomerCommitmentDate`,

                                         `RiskLevel`, `NeedLawsuit`, `NeedSeizureCar`, `CaseTime`, `RetreatTime`,

                                         `FirstDistributeTime`,

                                         SetOutTime, EndVisitTime, CreatedRemark, ReimbursableDistance,

                                         AdjustReimbursableDistance, BelongingRegion,

                                         `SendPerson`, `SignTime`, `LastRecordTime`, `ServiceCode`, `ServiceName`,

                                         `Department`, `VisitorRole`, `FirstOrderAuditPerson`,

                                         `FirstOrderAuditTime`, PassOrderAuditTime, PassOrderAuditPerson,

                                         `NoAuditTimes`, `FirstAuditRejectRemark`, `RequestCloseTime`,

                                         `RequestClosePerson`, `CloseReasonName`, `ClosedAt`, `AcceptTime`,

                                         `CompleteTime`, Amount, AppointTime, ExpressFee, FollowFrequency,

                                         AbnormalRoadCondition, LastNegotiatorTime, ReportDeadline,

                                         OrderReturnedTypeName, AssistComplete, ResPrincipal, UnFollowDays,

                                         SignAddr, UnusualDistance, UnusualSign, AuditStatus,

                                         AccommodateSign,OptimalReturnDistance,OverdueGrade,FeeRemark,FindWho,

                                         AdjustReimReturnDistance,SecondLinkMan,SecondVisitStatus,ReturnCountReward,ReturnPriceReward,

                                         `CreatedAt`,

                                         `Deleted`)



    SELECT WorkOrderId,

           `OrderType`,

           `ContractNumber`,

           `SubjectName`,

           `SubjectCode`,

           `CustomerName`,

           `CustomerId`,

           `WorkStatus`,

           `AppCode`,

           `WorkStatusName`,

           `CreatePersonCode`,

           `CreatePersonName`,

           `CreatedTime`,

           `UserName`,

           `RequiredTime`,

           `CurrentPersonCode`,

           `CurrentPersonName`,

           `OverdueDays`,

           `IntervieweeType`,

           `IntervieweeName`,

           `Typee`,

           `ProCode`,

           `ProName`,

           `CityCode`,

           `CityName`,

           `AreaCode`,

           `AreaName`,

           `Address`,

           `IsNightVisit`,

           `TripMode`,

           `Achievements`,

           `NightVisitFee`,

           `TotalDistance`,

           `ReturnDistance`,

           `OilPrice`,

           `OilSubsidy`,

           `RoadBridgePrice`,

           `InTrafficPrice`,

           `TaxiFare`,

           `Accommodation`,

           `DifferenceFare`,

           `LimitationFee`,

           `ReportingQuality`,

           `OverduePrincipal`,

           `RefundPrice`,

           ReceiveAmounts,

           `UseTime`,

           `AddressType`,

           `IsFindPerson`,

           `IsOtherAccess`,

           `AddressInfoTopName`,

           `IsSecondLink`,

           `CustomerIsContact`,

           `LinkmanIsContact`,

           `IsFindCar`,

           `CarUseInfo`,

           `CustomerCommitmentDate`,

           `RiskLevel`,

           `NeedLawsuit`,

           `NeedSeizureCar`,

           `CaseTime`,

           `RetreatTime`,

           `FirstDistributeTime`,

           SetOutTime,

           EndVisitTime,

           CreatedRemark,

           ReimbursableDistance,

           AdjustReimbursableDistance,

           BelongingRegion,

           `SendPerson`,

           `SignTime`,

           `LastRecordTime`,

           `ServiceCode`,

           `ServiceName`,

           `Department`,

           `VisitorRole`,

           `FirstOrderAuditPerson`,

           `FirstOrderAuditTime`,

           PassOrderAuditTime,

           PassOrderAuditPerson,

           `NoAuditTimes`,

           `FirstAuditRejectRemark`,

           `RequestCloseTime`,

           `RequestClosePerson`,

           `CloseReasonName`,

           `ClosedAt`,

           `AcceptTime`,

           `CompleteTime`,

           Amount,

           AppointTime,

           ExpressFee,

           FollowFrequency,

           AbnormalRoadCondition,

           LastNegotiatorTime,

           ReportDeadline,

           OrderReturnedTypeName,

           AssistComplete,

           ResPrincipal,

           UnFollowDays,

           SignAddr,

           UnusualDistance,

           UnusualSign,

           AuditStatus,

           AccommodateSign,

           OptimalReturnDistance,

           OverdueGrade,

           FeeRemark,

           FindWho,

           AdjustReimReturnDistance,

           SecondLinkMan,

           SecondVisitStatus,

					 ReturnCountReward,

					 ReturnPriceReward,

					 

           `CreatedAt`,

           `Deleted`



    FROM (

             select row_number() OVER (PARTITION BY `a`.`Id` )                               AS `num`,

                    a.Id                                                                     AS WorkOrderId,

                    a.OrderType,

                    h.ContractNumber,

                    f.SubjectName                                                            AS SubjectName,

                    f.SubjectCode                                                            AS SubjectCode,

                    g.CustomerName,

                    g.CustomerId,

                    ifnull(InWorkSatus, `a`.`WorkStatus`)                                    AS `WorkStatus`,

                    `a`.`AppCode`                                                            AS `AppCode`,

                    fn_GetStatusNameByCode(ifnull(InWorkSatus, `a`.`WorkStatus`))            AS WorkStatusName,

                    a.CreatePersonCode,

                    a.CreatePersonName,

                    `a`.`CreatedAt`                                                          AS `CreatedTime`,

                    h.BorrowerName                                                           AS `UserName`,

                    `a`.`RequiredTime`,

                    fn_GetCurrentPersonInfo(a.Id, 1)                                         AS CurrentPersonCode,

                    fn_GetCurrentPersonInfo(a.Id, 2)                                         AS CurrentPersonName,



                    h.OverdueDays,

                    CASE g.IntervieweeType

                        WHEN '0' THEN '借款人'

                        WHEN '1' THEN '共借人'

                        WHEN '2' THEN '担保人'

                        WHEN '3' THEN '亲友'

                        WHEN '4' THEN '配偶'

                        WHEN '5' THEN '承租人'

                        WHEN '6' THEN '实际用车人'

                        when '7' then '申请人'

                        ELSE '' END                                                          AS IntervieweeType,

                    g.IntervieweeName,

                    (case `e`.`AddressTypeCode`

                         when '200' then '户籍地址'

                         when '201' then '居住地址'

                         when '202' then '单位地址'

                         when '203' then '其他地址(居住)'

                         when '204' then '其他地址(单位)'

                         when '205' then '房产地址'

                         when '206' then '其他地址'

                         else null end)                                                      AS `Typee`,

                    e.ProCode,

                    e.ProName,

                    e.CityCode,

                    e.CityName,

                    e.AreaCode,

                    e.AreaName,

                    e.Address,

                    IF(g.IsNightVisit = 0, '否', '是')                                         AS IsNightVisit,

                    IF(g.TripMode = 0, '自驾', '非自驾')                                          AS TripMode,

                    k1.FeeValue                                                              AS Achievements,

                    k2.FeeValue                                                              AS NightVisitFee,

                    g.TotalDistance,

                    g.ReturnDistance,

                    k3.FeeValue                                                              AS OilPrice,

                    k4.FeeValue                                                              AS OilSubsidy,

                    k5.FeeValue                                                              AS RoadBridgePrice,

                    k6.FeeValue                                                              AS InTrafficPrice,

                    k7.FeeValue                                                              AS TaxiFare,

                    k8.FeeValue                                                              AS Accommodation,

                    k9.FeeValue                                                              AS DifferenceFare,

                    k11.FeeValue                                                             AS LimitationFee,

                    k12.FeeValue                                                             AS ReportingQuality,

                    h.OverduePrincipal,

                    k13.FeeValue                                                             AS RefundPrice,

                    k14.FeeValue                                                             AS ReceiveAmounts,

                    #时长统计

                    CONCAT(

                            FLOOR(TIMESTAMPDIFF(SECOND, a.CreatedAt,

                                                fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                      ) / 86400), '天',

                            TIMESTAMPDIFF(HOUR, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 24, '时',

                            TIMESTAMPDIFF(MINUTE, a.CreatedAt,

                                          fn_GetWorkFlowTimeInfo(a.Id, '结束')

                                ) % 60, '分'

                        )                                                                    AS UseTime,



                    CASE g.AddressType

                        WHEN '0' THEN '城市'

                        WHEN '1' THEN '农村'

                        WHEN '2' THEN '单位'

                        END                                                                  AS AddressType,



                    CASE m.RecordJson -> '$.IsFindPerson'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsFindPerson,



                    CASE m.RecordJson -> '$.IsOtherAccess'

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS IsOtherAccess,





                    CASE m.RecordJson -> '$.AddressInfoTopCode'

                        WHEN '0' THEN '地址存在且有效'

                        WHEN '1' THEN '地址存在但无效'

                        WHEN '2' THEN '地址虚假/不存在'

                        ELSE '' END                                                          AS AddressInfoTopName,



                    #是否复联

                    #现场拨打电话情况,客户/联系人有一种情况为“可联”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                    #上汽客户逻辑:现场拨打电话情况,客户/联系人有一个联系结果为“接通”或是否新增有效联系方式为是,即为是,全部失联且未新增有效联系时为否

                        IF(

                    (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult') IS NOT NULL),

                    (IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactList[*].ContactResult'))),'是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.CustomerContactList[*].ContactResult'))),'是',

                     IF(1 member of (JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess')),'是','否')))

                    ),

                    (IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 0 or CAST(m.RecordJson->>'$.LinkmanIsContact' AS CHAR CHARSET utf8mb4)='NULL'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.CustomerIsContact') = 0),

                     IF((JSON_EXTRACT(m.RecordJson, '$.IsOtherAccess') = 0), '否', '是'), '是'),

                     IF((JSON_EXTRACT(m.RecordJson, '$.LinkmanIsContact') = 1), '是',

                     IF((1 member of (JSON_EXTRACT(m.RecordJson, '$.LinkmanContactCommonList[*].ContactResult'))),'是',NULL))))) AS IsSecondLink,

                    #复联人

                    #新增字段,取值为关系类型(①现场拨打电话情况中选择“可联”的关系类型,含客户、联系人-关系类型;②是否新增有效联系方式选择“是”的关系类型)

                    # 若存在多个关系类型,则用【、】隔开,关系类型为【亲属】时,需拼接备注信息

                    fn_afcgetsecondlinkrelationbyid(a.Id,a.CustomerName) as SecondLinkMan,

                    m.RecordJson -> '$.CustomerIsContact'                                    AS CustomerIsContact,

                    m.RecordJson -> '$.LinkmanIsContact'                                     AS LinkmanIsContact,



                    CASE json_extract(`m`.`RecordJson`, '$.IsFindCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `IsFindCar`,



                    IF(cast(json_extract(`m`.`RecordJson`, '$.CarUseInfo') as char charset utf8mb4) = 'null', NULL,

                       json_unquote(json_extract(`m`.`RecordJson`, '$.CarUseInfo')))         AS `CarUseInfo`,

                    if((cast(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10) as char charset utf8mb4) <>

                        'null'),

                       CONVERT(left(`m`.`RecordJson` ->> '$.CustomerCommitmentDate', 10), date),

                       NULL)                                                                 AS `CustomerCommitmentDate`,



                    CASE m.RecordJson -> '$.RiskLevel'

                        WHEN '0' THEN '低'

                        WHEN '1' THEN '中'

                        WHEN '2' THEN '高'

                        END                                                                  AS RiskLevel,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedLawsuit')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedLawsuit`,



                    CASE json_extract(`m`.`RecordJson`, '$.NeedSeizureCar')

                        WHEN '0' THEN '否'

                        WHEN '1' THEN '是'

                        ELSE NULL

                        END                                                                  AS `NeedSeizureCar`,



                    h.CaseTime,

                    h.RetreatTime,

                    g.FirstDistributeTime,

                    fn_GetAFCSetOutTimeById(`a`.`Id`)                                        AS SetOutTime,

                    fn_GetAFCEndVisitTimeById(`a`.`Id`)                                      AS EndVisitTime,

                    a.Remark                                                                 AS CreatedRemark,

                    g.ReimbursableDistance                                                   AS ReimbursableDistance,

                    g.AdjustReimbursableDistance                                             AS AdjustReimbursableDistance,

                    h.UserProName                                                            AS BelongingRegion,



                    `fn_GetAfcDispatcherName`(`a`.`Id`)                                      AS SendPerson,

                    n.SignTime,

                    #最新备案时间

                    fn_GetAFCLastRecordTimeById(a.Id)                                        AS LastRecordTime,

                    i.ServiceCode,

                    i.ServiceName,

                    m.Department,

                    m.VisitorRole,

                    #质检 见壹好车服质检报表

                    `fn_GetServiceAuditFirstPersonById`(`a`.`Id`)                            AS `FirstOrderAuditPerson`,

                    `fn_GetServiceAuditFirstTimeById`(`a`.`Id`)                              AS `FirstOrderAuditTime`,

                    fn_GetAFCPassAuditTimeById(`a`.`Id`)                                     AS PassOrderAuditTime,

                    fn_GetAFCPassAuditPersonNameById(`a`.`Id`)                               AS PassOrderAuditPerson,

                    #质检不通过次数

                    fn_GetAFCServiceAuditTimesById(`a`.`Id`)                                 AS NoAuditTimes,

                    `fn_GetServiceAuditRejectReasonById`(`a`.`Id`)                           AS `FirstAuditRejectRemark`,

                    fn_GetRequestCloseTimeById(`a`.`Id`)                                     AS RequestCloseTime,

                    o1.ClosePersonName                                                       AS `RequestClosePerson`,

                    #关闭原因

                    IF(o1.CloseReasonCode = 'CloseReason8101-00', o1.Remark,

                       o1.CloseReasonName)                                                   AS CloseReasonName,

                    o1.ClosedAt,

                    fn_GetAFCAcceptTimeById(a.Id)                                            AS AcceptTime,

                    `fn_GetWorkFlowTimeInfo`(`a`.`Id`, '结束')                                 AS `CompleteTime`,

                    l.Amount,

                    p.AppointTime                          AppointTime,

                    q.FeeValue                                                               as ExpressFee,

                    case p.v_FollowFrequency

                        when 0 then '低频跟进'

                        when 1

                            then '高频跟进' end                                                  as FollowFrequency,

                    if(fn_GetWorkFlowTimeInfo(a.id, '路况异常签到') is null, '否', '是')             as AbnormalRoadCondition,

                    p.v_LastNegotiatorTime                                                   as LastNegotiatorTime,

                    p.v_ReportDeadline                                                       AS ReportDeadline,

                    fn_GetAfcReturnTypeByCode(p.BussinessJson ->> '$.OrderReturnedTypeCode') as OrderReturnedTypeName,

                    CASE P.v_AfcCompleteType

                        WHEN 1 THEN '是'

                        when 3 then '是'

                        when 2 then '否'

                        end                                                                  as AssistComplete,

                    h.ResPrincipal                                                           as ResPrincipal,

                    p.v_UnFollowDays                                                         as UnFollowDays,

                    n.SignAddr                                                               as SignAddr,

                    p.BussinessJson ->> '$.UnusualDistance'                                  as UnusualDistance,

                    p.BussinessJson ->> '$.UnusualSign'                                      as UnusualSign,

                    case fn_GetFeeTypeById(a.id,'住宿费',ifnull(a.ServiceProviderCode,'1001'),2)

                        when 0 then null

                        when 1 then '待审核'

                        when 2 then '已通过'

                        when 3 then '未通过'

                        else null end                                                        as AuditStatus,

                    s.SignTime                                                               as AccommodateSign,

                    g.OptimalReturnDistance ,

                    BussinessJson->>'$.overdueGrade' as OverdueGrade,

           l.Remark as FeeRemark,

                    if(m.RecordJson->>'$.IsFindPerson'=1,m.RecordJson->>'$.FindWho',null) as FindWho ,

                    g.AdjustReimReturnDistance,

                    case P.V_SecondVisitStatus when 0 then '待走访'

                        when 1 then '走访中'

                        when 2 then '走访完成'

                        when 3 then '走访拒绝' end

                        AS SecondVisitStatus,

					k15.FeeValue   AS ReturnCountReward,

                    k16.FeeValue                                                             AS ReturnPriceReward,

                    NOW()                                                                    AS CreatedAt,

                    0                                                                        AS Deleted

             from `tb_workorderinfo` `a`

                      inner join tb_workaddressinfo e

                                 on e.WorkOrderId = a.Id

                                     and e.Deleted = 0

                      left join tb_workservicesubject f

                                on f.WorkOrderId = a.Id

                                    and f.Deleted = 0

                      inner join tb_afcworkorderinfo g

                                 on g.Id = a.Id

                                     and g.Deleted = 0

                      left join tb_afcworkfinanceinfo h

                                on h.WorkOrderId = a.Id

                      left join tb_workserviceinfo i

                                on i.WorkOrderId = a.Id

                                    and i.Deleted = 0

                      left join `tb_afcfeeinfo` `l` on `l`.`WorkOrderId` = `a`.`Id`

                 and `l`.`Deleted` = 0

                      left join `tb_afcfeedetail` `k1` on `k1`.`WorkOrderId` = `a`.`Id`

                 and `k1`.`Deleted` = 0

                 and `k1`.`PriceTypeCode` = 'Achievements'

                      left join `tb_afcfeedetail` `k2` on `k2`.`WorkOrderId` = `a`.`Id`

                 and `k2`.`Deleted` = 0

                 and `k2`.`PriceTypeCode` = 'NightVisitFee'

                      left join `tb_afcfeedetail` `k3` on `k3`.`WorkOrderId` = `a`.`Id`

                 and `k3`.`Deleted` = 0

                 and `k3`.`PriceTypeCode` = 'OilPrice'

                      left join `tb_afcfeedetail` `k4` on `k4`.`WorkOrderId` = `a`.`Id`

                 and `k4`.`Deleted` = 0

                 and `k4`.`PriceTypeCode` = 'OilSubsidy'

                      left join `tb_afcfeedetail` `k5` on `k5`.`WorkOrderId` = `a`.`Id`

                 and `k5`.`Deleted` = 0

                 and `k5`.`PriceTypeCode` = 'RoadBridgePrice'

                      left join `tb_afcfeedetail` `k6` on `k6`.`WorkOrderId` = `a`.`Id`

                 and `k6`.`Deleted` = 0

                 and `k6`.`PriceTypeCode` = 'InTrafficPrice'

                      left join `tb_afcfeedetail` `k7` on `k7`.`WorkOrderId` = `a`.`Id`

                 and `k7`.`Deleted` = 0

                 and `k7`.`PriceTypeCode` = 'TaxiFare'

                      left join `tb_afcfeedetail` `k8` on `k8`.`WorkOrderId` = `a`.`Id`

                 and `k8`.`Deleted` = 0

                 and `k8`.`PriceTypeCode` = 'Accommodation'

                      left join `tb_afcfeedetail` `k9` on `k9`.`WorkOrderId` = `a`.`Id`

                 and `k9`.`Deleted` = 0

                 and `k9`.`PriceTypeCode` = 'DifferenceFare'

                      left join `tb_afcfeedetail` `k11` on `k11`.`WorkOrderId` = `a`.`Id`

                 and `k11`.`Deleted` = 0

                 and `k11`.`PriceTypeCode` = 'LimitationFee'

                      left join `tb_afcfeedetail` `k12` on `k12`.`WorkOrderId` = `a`.`Id`

                 and `k12`.`Deleted` = 0

                 and `k12`.`PriceTypeCode` = 'ReportingQuality'

                      left join `tb_afcfeedetail` `k13` on `k13`.`WorkOrderId` = `a`.`Id`

                 and `k13`.`Deleted` = 0

                 and `k13`.`PriceTypeCode` = 'RefundPrice'

                      left join `tb_afcfeedetail` `k14` on `k14`.`WorkOrderId` = `a`.`Id`

                 and `k14`.`Deleted` = 0

                 and `k14`.`PriceTypeCode` = 'receiveAmounts'

								 

								 

								        left join `tb_afcfeedetail` `k15` on `k15`.`WorkOrderId` = `a`.`Id`

                 and `k15`.`Deleted` = 0

                 and `k15`.`PriceTypeCode` = 'ReturnCountReward'

								 

								        left join `tb_afcfeedetail` `k16` on `k16`.`WorkOrderId` = `a`.`Id`

                 and `k16`.`Deleted` = 0

                 and `k16`.`PriceTypeCode` = 'ReturnPriceReward'

								 

								 

								 

								 

								 

								 

								 

                      left join tb_afcworkfinancerecord m

                                on m.WorkOrderId = a.Id

                                    and m.Deleted = 0

                      left join tb_worksignininfo n

                                on n.WorkOrderId = a.Id

                                    and n.Deleted = 0

                                    and n.SignType = 2

                      left join tb_workorderstatus o1

                                on o1.WorkOrderId = a.Id

                                    and o1.Deleted = 0

                                    and o1.TypeStatus = 0

                      inner join tb_workorderstatus o

                                 on o.WorkOrderId = a.Id

                                     and o.Deleted = 0

                      left join tb_workbussinessjsoninfo p on a.id = p.workorderid and p.deleted = 0

                      left join tb_afcfeedetail q

                                on a.id = q.WorkOrderId and q.Deleted = 0 and q.PriceTypeCode = 'ExpressFee'

                      left join serviceordercenter.tb_worksignininfo s

                                on a.id = s.WorkOrderId and s.Deleted = 0 and s.SignType = 5

             where `a`.`Deleted` = 0

               AND a.Id = InWorkOrderId

         ) AS t

    where (`t`.`num` = 1);



    #20231205张珂珂需求【上汽通用汽车金融有限责任公司(清收)】、【上汽通用汽车金融有限责任公司】这俩客户下工单的质检通过时间 取值为工单完成时间

    update rp_afcworkorderdetail a

    set a.PassOrderAuditTime= a.CompleteTime,

        a.FirstOrderAuditTime= a.CompleteTime,

        a.PassOrderAuditPerson='系统确认',

        a.FirstOrderAuditPerson='系统确认'

    where `CustomerName`  in('上汽通用汽车金融有限责任公司(清收)','上汽通用汽车金融有限责任公司')

      and PassOrderAuditTime is null

    and a.WorkOrderId=InWorkOrderId;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT NULL,

           CONCAT('AfcCompletedWorkOrderById', InWorkOrderId) AS Logger,

           'proc_AfcCompletedWorkOrderById'                   AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())        AS TimeSpan,

           IF(sys_ErrCode = '00000', NULL, sys_ErrCode)       AS ErrCode,

           CONCAT(InWorkOrderId, IFNULL(sys_ErrMessage, ''))  AS ErrMessage,

           NOW()                                              AS LogTime;



END

proc_VhsCompletedWorkOrderById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_VhsCompletedWorkOrderById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_VhsCompletedWorkOrderById`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_VhsCompletedWorkOrderById`(IN InWorkOrderId char(12))
    COMMENT '根据id获取已完成工单明细-质量考核明细表'
BEGIN

#Create: 2021年01月05日



	#日志记录定义模块

	DECLARE sys_StartTime  DATETIME;

	DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

	DECLARE sys_ErrMessage VARCHAR(200);

	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

	BEGIN GET DIAGNOSTICS CONDITION 1

		sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

	END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    DELETE FROM rp_vhsworkorderdetail WHERE WorkOrderId = InWorkOrderId;



	#修改隔离级别,防止对业务表过长的共享锁占用

	SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO rp_vhsworkorderdetail(WorkOrderId,CustomerId,CustomerName,SubCompanyId,SubCompanyName,AppCode,OrderType,SubjectCode,SubjectName,

                                  ProCode,ProName,CityCode,CityName,UserName,PlateNumber,VinNumber,CreatedAtDay,CreatedAtDayName,CreatedAtTime,

                                  WorkFlowAcceptDay,WorkFlowAcceptTime,RecordDay,RecordTime,ApprovalTime,CerRegistDate,ResultAuditState,ResultRejectReason,

                                  ReceiptAuditState,ReceiptRejectReason,ReturnAuditState,ReturnRejectReason,

																	ReceiveState,FirstReturnAuditState,FirstReturnRejectReason,

																	

																	HandlingMethodCode,HandlingMethodName,HandlingTeamCode,

                                  HandlingTeamName,RecordLimitState,AcceptLimitState,ApprovalOperCode,ApprovalOperName,ApprovalDoneAt,AcceptOperCode,

                                  AcceptOperName,RecordOperCode,RecordOperName,ServiceCode,ServiceName,ServicePosition,CarRemark,VhsAppCode,

                                  AppointRemark,ServiceRemark,ModifyRemark,CheckRemark,RequiredTime,InsertTime,Deleted,ReceiveTime,ActualReceiveMethod,ExpressNumber

                                  )

SELECT T.Id AS WorkOrderId,

       T.CustomerId AS CustomerId,

       T.CustomerName AS CustomerName,

       T.SubCompanyId AS SubCompanyId,

       T.SubCompanyName AS SubCompanyName,

       A.AppCode AS AppCode,

       '7101' AS OrderType,

       B.SubjectCodeSummary AS SubjectCode,

       B.SubjectNameSummary AS SubjectName,

       A.ProCode AS ProCode,

       A.ProName AS ProName,

       A.CityCode AS CityCode,

       A.CityName AS CityName,

       C.UserName AS UserName,

       C.PlateNumber AS PlateNumber,

       C.VinNumber AS VinNumber,

       DATE_FORMAT(a.CreatedAt,'%Y-%m-%d') AS CreatedAtDay,

       case DAYNAME(a.CreatedAt)

           when 'Monday' then '星期一'

           when 'Tuesday' then '星期二'

           when 'Wednesday' then '星期三'

           when 'Thursday' then '星期四'

           when 'Friday' then '星期五'

           when 'Saturday' then '星期六'

           when 'Sunday' then '星期日'

           end AS CreatedAtDayName,

       time(a.CreatedAt) AS CreatedAtTime,

       DATE_FORMAT(fn_GetWorkFlowTimeInfo(T.id,'分配工单'),'%Y-%m-%d') AS WorkFlowAcceptDay,

       time(fn_GetWorkFlowTimeInfo(T.id,'分配工单')) AS WorkFlowAcceptTime,

       DATE_FORMAT(fn_GetLastRecordTimeById(T.id),'%Y-%m-%d') AS RecordDay,

       time(fn_GetLastRecordTimeById(T.id)) AS RecordTime,

       T.ApprovalTime AS ApprovalTime,

       D.CerRegistDate AS CerRegistDate,

       D.ResultAuditState AS ResultAuditState,

       D.ResultRejectReason AS ResultRejectReason,

       D.ReceiptAuditState AS ReceiptAuditState,

       D.ReceiptRejectReason AS ReceiptRejectReason,

       D.ReturnAuditState AS ReturnAuditState,

       D.ReturnRejectReason AS ReturnRejectReason,

			 

			 -- 2024.10.31新增 yft

			 m.ReceiveState,

       (SELECT n.BussinessJson->>'$.FirstReturnAuditState' AS FirstReturnAuditState FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnAuditState,

			 (SELECT n.BussinessJson->>'$.FirstReturnRejectReason' AS `FirstReturnRejectReason` FROM tb_workbussinessjsoninfo n WHERE n.WorkOrderId=T.Id and n.deleted=0 LIMIT 1) AS FirstReturnRejectReason,

			 

			 

       E.HandlingMethodCode AS HandlingMethodCode,

       E.HandlingMethodName AS HandlingMethodName,

       E.HandlingTeamCode AS HandlingTeamCode,

       E.HandlingTeamName AS HandlingTeamName,

       D.RecordLimitState AS RecordLimitState,

       D.AcceptLimitState AS AcceptLimitState,

       h.OperatePerson AS ApprovalOperCode,

       h.OperateName AS ApprovalOperName,

       h.OperateTime AS ApprovalDoneAt,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',1) AS AcceptOperCode,

       fn_GetWorkFlowPersonInfo(T.Id,'分配工单',2) AS AcceptOperName,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',1),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',1)) AS RecordOperCode,

       IFNULL(fn_GetWorkFlowPersonInfo(T.Id,'质检驳回',2),fn_GetWorkFlowPersonInfo(T.Id,'提交处理结果',2)) AS RecordOperName,

       F.ServiceCode AS ServiceCode,

       F.ServiceName AS ServiceName,

       T.ExtraJson->>'$.ServicePosition' AS ServicePosition,

       C.Remark AS CarRemark,

       T.v_vhsAppCode AS VhsAppCode,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 9 order by h1.InsertTime desc limit 1) AS AppointRemark,

       F.Remark AS ServiceRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 12 order by h1.InsertTime desc limit 1) AS ModifyRemark,

       (select Remark from tb_remarkinfo H1 where H1.WorkOrderId = T.Id and H1.Deleted = 0 and H1.Type = 11 order by h1.InsertTime desc limit 1) AS CheckRemark,

       A.RequiredTime AS RequiredTime,

       CURRENT_TIMESTAMP(0) AS InsertTime,

       0 AS Deleted,

       min(i.OperateTime) as ReceiveTime,

  case m.ActualReceiveMethod when 1 then '快递邮寄' when 2 then '现场归还'when 3 then '中瑞总部转交' end ActualReceiveMethod,

       if(m.ExpressJson->>'$.ExpressNumber'='null',null,m.ExpressJson->>'$.ExpressNumber') ExpressNumber

FROM tb_vhsworkorderinfo T

INNER JOIN tb_workorderinfo       A ON A.ID = T.ID AND A.Deleted = 0

LEFT JOIN tb_worksubjectsummary  B ON B.WorkOrderId = T.ID AND B.Deleted = 0  #项目数据合并  #tb_workservicesubject 项目数据不合并,一个工单ID可能多条

LEFT JOIN tb_workcarinfo         C ON C.WorkOrderId = T.ID AND C.Deleted = 0

LEFT JOIN tb_vhsworkauditinfo    D ON D.WorkOrderId = T.Id AND D.Deleted = 0

LEFT JOIN tb_vhsworkorderrecorddetail E ON E.Id = T.Id AND E.Deleted = 0

LEFT JOIN tb_workserviceinfo     F ON F.WorkOrderId = T.Id AND F.Deleted = 0

left join tb_workoperateinfo     h on t.id = h.WorkOrderId and h.Reason = '考核通过' and h.Deleted=0

left join tb_workoperateinfo i on t.id = i.WorkOrderId and i.Deleted=0 and i.Reason in('归还','系统自动归还')

left join tb_vhsworkfilereceiveinfo m on t.id = m.workorderid and m.deleted=0 and m.ReceiveType=2

WHERE T.Deleted = 0

and   t.Id = InWorkOrderId

;

#恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;





    #日志记录生成模块

	INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

	SELECT  NULL,

           CONCAT('VhsCompletedWorkOrderById',InWorkOrderId) AS Logger,

           'proc_VhsCompletedWorkOrderById'    AS ProcedureName,

           TIMESTAMPDIFF(SECOND,sys_StartTime,NOW())   AS TimeSpan,

           IF(sys_ErrCode='00000',NULL,sys_ErrCode)    AS ErrCode,

           IF(sys_ErrCode='00000',NULL,sys_ErrMessage) AS ErrMessage,

           NOW() AS LogTime;



END

proc_generateInstitutional

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_generateInstitutional \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_generateInstitutional`(in num int)
begin

	declare whilenum int default 5000;

	while whilenum < num do

		set @name= concat('系统生成',whilenum);

		SELECT @SortOrder:=IFNULL(MAX(SortOrder) + 1,1) FROM basic_institutionalinfo WHERE Deleted=0 AND ParentId='IJ9999999878';

		SELECT @Code:=concat( TeamCode,LPAD(IFNULL(MAX(CAST(RIGHT(Code, 4) AS SIGNED)) + 1,1),4,'0')) 

			FROM basic_institutionalinfo WHERE Deleted=0 AND TeamCode ='ZR01ZR001';

		#Level=3,OrgCode = 1001,TeamCode=ZR01ZR001,Code= ZR01ZR001+  ,SortOrder = max+1,name

		INSERT INTO basic_institutionalinfo(Id,ParentId,Code,Name,Level,SortOrder,OrgCode,TeamCode,InsertTime) 

					VALUES(fn_nextval('IJ'),'IJ9999999878',@Code,@name,3,@SortOrder,'1001','ZR01ZR001',NOW());

	  set whilenum = whilenum +1;



	end while;

	set num = whilenum;

end

proc_DelHisWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_DelHisWorkOrderInfoBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_DelHisWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE InDeleted int;

    DECLARE InWorkOrderId VARCHAR(36) DEFAULT InOrderId;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;

    delete a

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;

    delete a

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    delete a

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfo_his a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_riskworkorderinfohis a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo a

    WHERE a.WorkOrderId = InOrderId;



    delete a

    from serviceordercenter.tb_workorderevaluateinfo a,

         tmp_singleorderid b

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    delete a

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;





    delete a

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;

    delete a

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId

    and b.deleted = 0;

    delete a

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;





    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;





    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;



    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    select Deleted into InDeleted from tb_workorderinfo where id = InOrderId;



    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenter.workflowcompleteitems

    where TargetEntityId = InOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN



        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;

    end if;

    if (ORuntimeItemId is null and ((SELECT ID

                                     FROM serviceordercenter.workflowcompletesteps

                                     WHERE DELETED = 0

                                       AND RuntimeItemId = OCompleteItemId

                                       AND NAME = '结束') is not null))

    then



        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;

    end if;

    set foreign_key_checks = 1;

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

       # UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        #UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块



    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'DelHisWorkOrderInfoBySingle'                   AS Logger,

           'proc_DelHisWorkOrderInfoBySingle'              AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;



END

proc_WorkflowJsonById

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_WorkflowJsonById \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_WorkflowJsonById`(InWorkOrderId char(12))
    SQL SECURITY INVOKER
BEGIN



#日志记录定义模块

DECLARE sys_StartTime  DATETIME;

DECLARE sys_ErrCode    VARCHAR(5) DEFAULT '00000';

DECLARE sys_ErrMessage VARCHAR(200);

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN GET DIAGNOSTICS CONDITION 1

sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

END;

SET sys_StartTime = CURRENT_TIMESTAMP();



DROP TABLE IF EXISTS tm_workjson;

CREATE TEMPORARY TABLE tm_workjson(

  WorkOrderId CHAR(12) PRIMARY KEY,

  Stepjson Json

);





#修改隔离级别,防止对业务表过长的共享锁占用

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

  WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowcompleteitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowcompletesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowcompleteactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)

    ) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



IF NOT EXISTS(SELECT 1 FROM tm_workjson) THEN

INSERT INTO tm_workjson(WorkOrderId,Stepjson)

WITH CTE AS

	(SELECT s.Id,s.CommonStepCode,s.StepStatus,s.FT,m.LT,s.FP,m.LP,s.FN,m.LN,n.FST,n.FSP,n.FSN,p.LST,p.LSP,p.LSN,q.LFT,q.LFP,q.LFN

	FROM (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS FT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS FP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS FN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.StartedAt ASC) AS Fnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS s,

  (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,d.Status AS StepStatus,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode,d.Status

	ORDER BY d.DoneAt DESC) AS Lnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS m,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS FST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS FSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS FSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt ASC) AS FSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS n,

		(SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s') AS LST,

	IF(d.CreatedById IS NULL,'未获取',g.LoginName) AS LSP,

    IF(d.CreatedById IS NULL,'未获取',g.UserName) AS LSN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.StartedAt DESC) AS LSnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

		AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=d.CreatedById

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS p,

    (SELECT b.TargetEntityId AS Id,d.RuntimeItemId,h.CommonStepCode,DATE_FORMAT(d.DoneAt,'%Y-%m-%d %H:%i:%s') AS LFT,

	IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393','未获取',IFNULL(IFNULL(g.LoginName,f.LoginName),f.UserId)) AS LFP,

    IF(f.UserId='8FB00000-3E0D-0016-532F-08D4B6AE5393',f.FullName,IFNULL(IFNULL(g.UserName,f.FullName),'未获取')) AS LFN,

	ROW_NUMBER() OVER(PARTITION BY c.Code,d.RuntimeItemId,h.CommonStepCode

	ORDER BY d.DoneAt DESC) AS LFnum

	FROM serviceordercenter.workflowruntimeitems b

	INNER JOIN serviceordercenter.workflowitems c

	  ON c.Id=b.WorkflowItemId

	INNER JOIN serviceordercenter.workflowruntimesteps d

	  ON d.RuntimeItemId=b.Id

	  AND d.Deleted=0

	INNER JOIN serviceordercenter.workflownodes e

	  ON e.Id=d.WorkflowNodeId

	LEFT JOIN serviceordercenter.workflowruntimeactors f

		ON f.RuntimeStepId=d.Id

		AND f.Processed=1

		AND f.Deleted=0

	LEFT JOIN (SELECT DISTINCT UserCenterId,LoginName,UserName

	FROM serviceordercenter.manager_userinfo

	WHERE Deleted=0) g

		ON g.UserCenterId=f.UserId

	LEFT JOIN serviceordercenter.tm_commonstepinfo h

		ON h.StepCode=e.Code

		AND h.ItemCode=c.Code

		AND h.Deleted=0

	WHERE b.TargetEntityId=InWorkOrderId

		AND b.Deleted=0

		) AS q

	WHERE s.Fnum=1

		AND m.LNum=1

		AND n.FSnum=1

		AND p.LSnum=1

        AND q.LFnum=1

		AND s.RuntimeItemId=m.RuntimeItemId

		AND s.CommonStepCode=m.CommonStepCode

		AND s.StepStatus=m.StepStatus

		AND s.Id=m.Id

		AND s.RuntimeItemId=n.RuntimeItemId

		AND s.CommonStepCode=n.CommonStepCode

		AND s.Id=n.Id

		AND s.RuntimeItemId=p.RuntimeItemId

		AND s.CommonStepCode=p.CommonStepCode

		AND s.Id=p.Id

        AND s.RuntimeItemId=q.RuntimeItemId

		AND s.CommonStepCode=q.CommonStepCode

		AND s.Id=q.Id

		AND s.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED')

		AND m.StepStatus IN ('PROCESSING','ACCEPTED','DECLINED','CANCELLED','SUSPENDED'))

	SELECT UPPER(lsjson.Id),JSON_OBJECTAGG(lsjson.StepCodeKey,lsjson.StepDetailJson)

	FROM (SELECT a.Id,CONCAT('T',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FST' WHEN 'ACCEPTED' THEN 'FAT' WHEN 'DECLINED' THEN 'FDT' WHEN 'CANCELLED' THEN 'FCT' WHEN 'SUSPENDED' THEN 'FZT' END,IF(StepStatus='PROCESSING',FST,FT)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LST' WHEN 'ACCEPTED' THEN 'LAT' WHEN 'DECLINED' THEN 'LDT' WHEN 'CANCELLED' THEN 'LCT' WHEN 'SUSPENDED' THEN 'LZT' END,IF(StepStatus='PROCESSING',LST,LT)),

	JSON_OBJECTAGG('FST',FST),

    JSON_OBJECTAGG('LST',LST),

    JSON_OBJECTAGG('LFT',LFT)

	) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('P',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSP' WHEN 'ACCEPTED' THEN 'FAP' WHEN 'DECLINED' THEN 'FDP' WHEN 'CANCELLED' THEN 'FCP' WHEN 'SUSPENDED' THEN 'FZP' END,IF(StepStatus='PROCESSING',FSP,FP)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSP' WHEN 'ACCEPTED' THEN 'LAP' WHEN 'DECLINED' THEN 'LDP' WHEN 'CANCELLED' THEN 'LCP' WHEN 'SUSPENDED' THEN 'LZP' END,IF(StepStatus='PROCESSING',LSP,LP)),

	JSON_OBJECTAGG('FSP',FSP),

    JSON_OBJECTAGG('LSP',LSP),

    JSON_OBJECTAGG('LFP',LFP)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode

	UNION

	SELECT a.Id,CONCAT('N',a.CommonStepCode) AS StepCodeKey,

	JSON_MERGE_PATCH(JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'FSN' WHEN 'ACCEPTED' THEN 'FAN' WHEN 'DECLINED' THEN 'FDN' WHEN 'CANCELLED' THEN 'FCN' WHEN 'SUSPENDED' THEN 'FZN' END,IF(StepStatus='PROCESSING',FSN,FN)),

	JSON_OBJECTAGG(CASE StepStatus WHEN 'PROCESSING' THEN 'LSN' WHEN 'ACCEPTED' THEN 'LAN' WHEN 'DECLINED' THEN 'LDN' WHEN 'CANCELLED' THEN 'LCN' WHEN 'SUSPENDED' THEN 'LZN' END,IF(StepStatus='PROCESSING',LSN,LN)),

	JSON_OBJECTAGG('FSN',FSN),

    JSON_OBJECTAGG('LSN',LSN),

    JSON_OBJECTAGG('LFN',LFN)) AS StepDetailJson

	FROM CTE a

	GROUP BY a.Id,a.CommonStepCode) AS lsjson

	GROUP BY lsjson.Id;



END IF;



IF EXISTS(SELECT 1 FROM tm_workjson)

THEN

DELETE A FROM serviceordercenter.tb_workflowjsoninfo A WHERE A.WorkOrderId=InWorkOrderId;

INSERT INTO serviceordercenter.tb_workflowjsoninfo(WorkOrderId,Stepjson,SourceMode)

SELECT WorkOrderId,Stepjson,2

FROM tm_workjson;

END IF;



DROP TABLE IF EXISTS tm_workjson;



#恢复隔离级别

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



#日志记录生成模块

INSERT INTO sys_procedurelog(IsSuccess,Logger,ProcedureName,TimeSpan,ErrCode,ErrMessage,LogTime)

SELECT 1 AS IsSuccess,

   'WorkFlowJsonService' AS Logger,

   'proc_WorkflowJsonById' AS ProcedureName,

   TIMESTAMPDIFF(SECOND,sys_StartTime,NOW()) AS TimeSpan,

   sys_ErrCode AS ErrCode,

   sys_ErrMessage AS ErrMessage,

   NOW() AS LogTime;



END

proc_MoveHisWorkFlowBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveHisWorkFlowBySingle \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveHisWorkFlowBySingle`(InWorkOrderId varchar(12), InDeleted smallint)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022-12-05 10:54:24

#Comment: 单个单历史数据工作流迁移

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE OCompleteItemId VARCHAR(36);

    DECLARE ORuntimeItemId VARCHAR(36);

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();



    #start transaction ;

    set foreign_key_checks = 0;



    select id

    into OCompleteItemId

    from serviceordercenterhis.workflowcompleteitems

    where TargetEntityId = InWorkOrderId

      and Deleted = 0;



    select id

    into ORuntimeItemId

    from serviceordercenter.workflowruntimeitems

    where TargetEntityId = InWorkOrderId

      and Deleted = InDeleted;

    IF (ORuntimeItemId is not null)

    THEN

        delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimeitems

        where id = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowruntimesteps

        where RuntimeItemId = ORuntimeItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowRuntimeItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (ORuntimeItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowRuntimeActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowRuntimeSteps

                                        WHERE RuntimeItemId IN (ORuntimeItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowRuntimeAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowRuntimeComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowRuntimeActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowRuntimeSteps

                                                                                    WHERE RuntimeItemId IN (ORuntimeItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowruntimeactivities

        where RuntimeItemId = ORuntimeItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where b.RuntimeItemId = ORuntimeItemId

          and a.RuntimeStepId = b.id;

      /*

        delete a

        from serviceordercenter.workflowruntimeactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a

        from serviceordercenter.workflowruntimerelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimesteps a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeactivities a where a.RuntimeItemId = ORuntimeItemId;

        delete a from serviceordercenter.workflowruntimeitems a where a.id = ORuntimeItemId;*/

        end if;

        if (ORuntimeItemId is null and ((SELECT ID

                                         FROM serviceordercenter.workflowcompletesteps

                                         WHERE DELETED = 0

                                           AND RuntimeItemId = OCompleteItemId

                                           AND NAME = '结束') is not null))

        then



           delete a

        from serviceordercenterhis.workflowcompleteactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenterhis.workflowcompleterelatedactors a,

             serviceordercenter.workflowruntimesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenterhis.workflowcompleteitems a where a.id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleteitems(id, workflowitemid, targetentityid, currentstepid,

                                                                status, createdbyid,

                                                                createdat, updatedbyid,

                                                                updatedat, deleted, deletedbyid, deletedat)

        select id,

               workflowitemid,

               targetentityid,

               currentstepid,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompleteitems

        where id = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompletesteps(id, runtimeitemid, workflownodeid, name, sortorder,

                                                                startedat, doneat,

                                                                actornumber, acceptednumber, declinednumber,

                                                                status, createdbyid, createdat, updatedbyid, updatedat,

                                                                deleted, deletedbyid,

                                                                deletedat)

        select id,

               runtimeitemid,

               workflownodeid,

               name,

               sortorder,

               startedat,

               doneat,

               actornumber,

               acceptednumber,

               declinednumber,

               status,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat

        from serviceordercenter.workflowcompletesteps

        where runtimeitemid = OcompleteItemId;



        UPDATE serviceordercenterhis.WorkflowCompleteItems t1,serviceordercenter.WorkflowcompleteItems t2

        SET t1.CurrentStepId = t2.CurrentStepId

        WHERE t1.Id = t2.Id

          AND t2.Id IN (OcompleteItemId);



        insert into serviceordercenterhis.workflowcompleteactors(id, runtimestepid, userid, fullname, loginname,

                                                                 notified, notifiedat, remark,

                                                                 processed, processedat, workflowhandlingstatusid,

                                                                 status, active, isagent, agentactorid, isdelegate,

                                                                 delegateactorid, reason,

                                                                 originname, createdbyid, createdat, updatedbyid,

                                                                 updatedat, deleted,

                                                                 deletedbyid, deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               notified,

               notifiedat,

               remark,

               processed,

               processedat,

               workflowhandlingstatusid,

               a.status,

               active,

               isagent,

               agentactorid,

               isdelegate,

               delegateactorid,

               reason,

               originname,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id

          AND (a.Processed = 1 OR (a.Active = 0 AND a.IsAgent = 0 AND a.IsDelegate = 0));



        #5、加签

        INSERT INTO serviceordercenterhis.WorkflowCompleteComments (Id, RuntimeActorId, FromUserId, FromFullName,

                                                                    FromLoginName, ToUserId,

                                                                    ToFullName, ToLoginName, CommentedAt, Comment,

                                                                    Notified, NotifiedAt,

                                                                    IsReply, CreatedById, CreatedAt, UpdatedById,

                                                                    UpdatedAt, Deleted,

                                                                    DeletedById, DeletedAt)

        SELECT Id,

               RuntimeActorId,

               FromUserId,

               FromFullName,

               FromLoginName,

               ToUserId,

               ToFullName,

               ToLoginName,

               CommentedAt,

               Comment,

               Notified,

               NotifiedAt,

               IsReply,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteComments

        WHERE RuntimeActorId IN (SELECT Id

                                 FROM serviceordercenter.WorkflowcompleteActors

                                 WHERE RuntimeStepId IN

                                       (SELECT Id

                                        FROM serviceordercenter.WorkflowcompleteSteps

                                        WHERE RuntimeItemId IN (OcompleteItemId))

                                   AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0)));



#6、附件

        INSERT INTO serviceordercenterhis.WorkflowCompleteAttachments (Id, RuntimeCommentId, Name, TargetUrl,

                                                                       CreatedById, CreatedAt,

                                                                       UpdatedById, UpdatedAt, Deleted, DeletedById,

                                                                       DeletedAt)

        SELECT Id,

               RuntimeCommentId,

               Name,

               TargetUrl,

               CreatedById,

               CreatedAt,

               UpdatedById,

               UpdatedAt,

               Deleted,

               DeletedById,

               DeletedAt

        FROM serviceordercenter.WorkflowcompleteAttachments

        WHERE RuntimeCommentId IN (SELECT Id

                                   FROM serviceordercenter.WorkflowcompleteComments

                                   WHERE RuntimeActorId IN (SELECT Id

                                                            FROM serviceordercenter.WorkflowcompleteActors

                                                            WHERE RuntimeStepId IN (SELECT Id

                                                                                    FROM serviceordercenter.WorkflowcompleteSteps

                                                                                    WHERE RuntimeItemId IN (OcompleteItemId))

                                                              AND (Processed = 1 OR (Active = 0 AND IsAgent = 0 AND IsDelegate = 0))));





        insert into serviceordercenterhis.workflowcompleteactivities(id, runtimeitemid, userid, fullname, status,

                                                                     message, createdbyid,

                                                                     createdat, updatedbyid,

                                                                     updatedat, deleted, deletedbyid, deletedat,

                                                                     runtimestepid)

        select id,

               runtimeitemid,

               userid,

               fullname,

               status,

               message,

               createdbyid,

               createdat,

               updatedbyid,

               updatedat,

               deleted,

               deletedbyid,

               deletedat,

               runtimestepid

        from serviceordercenter.workflowcompleteactivities

        where RuntimeItemId = OcompleteItemId;



        insert into serviceordercenterhis.workflowcompleterelatedactors(id, runtimestepid, userid, fullname, loginname,

                                                                        status, notified,

                                                                        notifiedat,

                                                                        createdbyid, createdat, updatedbyid, updatedat,

                                                                        deleted, deletedbyid,

                                                                        deletedat)

        select a.id,

               runtimestepid,

               userid,

               fullname,

               loginname,

               a.status,

               notified,

               notifiedat,

               a.createdbyid,

               a.createdat,

               a.updatedbyid,

               a.updatedat,

               a.deleted,

               a.deletedbyid,

               a.deletedat

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where b.RuntimeItemId = OcompleteItemId

          and a.RuntimeStepId = b.id;

/*

        delete a

        from serviceordercenter.workflowcompleteactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a

        from serviceordercenter.workflowcompleterelatedactors a,

             serviceordercenter.workflowcompletesteps b

        where a.RuntimeStepId = b.id

          and b.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompletesteps a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteactivities a where a.RuntimeItemId = OcompleteItemId;

        delete a from serviceordercenter.workflowcompleteitems a where a.id = OcompleteItemId;*/

           end if;

    IF ORuntimeItemId IS NULL  and OCompleteItemId is null THEN

        UPDATE move_workflowuserinfo a

        SET a.Remark=CONCAT(IFNULL(a.Remark, ''), '历史数据工作流中无Instance信息;')

        WHERE a.WorkOrderId = InWorkOrderId;

        SET Result = 1;

end if;

set foreign_key_checks = 1;

#返回结果

SELECT Result AS ErType, sys_ErrMessage AS ErMessage;

SET @NRESULT = Result;

update move_workflowuserinfo A

set A.result = Result,

    a.Remark=concat(IFNULL(a.Remark, ''), ' ', IFNULL(sys_ErrMessage, ''))

WHERE WorkOrderId = InWorkOrderId;



/*IF Result = 1 THEN

        ROLLBACK;

    ELSE

        COMMIT;

    END IF;*/

#日志记录生成模块

/*

INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

SELECT Result                                                 AS IsSuccess,

       'MoveHisWorkFlowBySingle'                                 AS Logger,

       'proc_MoveHisWorkFlowBySingle'                            AS ProcedureName,

       TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())            AS TimeSpan,

       sys_ErrCode                                            AS ErrCode,

       concat(InWorkOrderId, ' ', IFNULL(sys_ErrMessage, '')) AS ErrMessage,

       NOW()                                                  AS LogTime;

*/

END

proc_MoveWorkOrderInfoBySingle

{
  "message": "\u5b58\u50a8\u8fc7\u7a0b proc_MoveWorkOrderInfoBySingle \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP PROCEDURE IF EXISTS `proc_MoveWorkOrderInfoBySingle`;
CREATE DEFINER=`user_service`@`%` PROCEDURE `proc_MoveWorkOrderInfoBySingle`(

    InOrderId char(12)

)
    SQL SECURITY INVOKER
BEGIN

    #Author: wangxh

#Create: 2022年8月23日

#Comment: 每年迁移车电历史工单数据

    #日志记录定义模块

    DECLARE sys_StartTime DATETIME;

    DECLARE sys_ErrCode VARCHAR(5) DEFAULT '00000';

    DECLARE sys_ErrMessage VARCHAR(200);

    DECLARE Result INT(1) DEFAULT 0;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

        BEGIN

            GET DIAGNOSTICS CONDITION 1

                sys_ErrCode = RETURNED_SQLSTATE,sys_ErrMessage = MESSAGE_TEXT;

        END;

    SET sys_StartTime = CURRENT_TIMESTAMP();

    #开启事务

    START TRANSACTION;



    #修改隔离级别,防止对业务表过长的共享锁占用

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;



    drop table if exists tmp_singleorderid;



    create temporary table tmp_singleorderid

    (

        tbid bigint auto_increment,

        uuid varchar(36) not null,

        id   varchar(36) null,

        primary key (tbid),

        key uuid (uuid),

        key ID (id)

    ) ENGINE = InnoDB

      DEFAULT CHARACTER SET = utf8

      COLLATE = utf8_general_ci

      ROW_FORMAT = COMPACT

      AVG_ROW_LENGTH = 2102;



    #异常工单表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_abnormalorder_log a

    WHERE a.WorkOrderId = InOrderId;





    insert into serviceordercenterhis.tb_abnormalorder_log

    select a.*

    from serviceordercenter.tb_abnormalorder_log a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_abnormalorder_log a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除工单主表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderinfo a

    WHERE a.ID = InOrderId;





    insert into serviceordercenterhis.tb_workorderinfo

    select a.*

    from serviceordercenter.tb_workorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/





    #删除工单备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workserviceinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workserviceinfo

    select a.*

    from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workserviceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单服务科目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workservicesubject a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workservicesubject

    select a.*

    from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workservicesubject a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单签到信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksignininfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worksignininfo

    select a.*

    from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksignininfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单标记信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktaginfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktaginfo

    select a.*

    from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktaginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单临时信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_worktempinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_worktempinfo

    select a.*

    from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worktempinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除工单服务科目汇总表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worksubjectsummary a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worksubjectsummary

    select a.*

    from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worksubjectsummary a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除质检不通过相关信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_auditinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_auditinfo

    select a.*

    from serviceordercenter.tb_auditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_auditinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除客户操作日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custoperatelog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custoperatelog

    select a.*

    from serviceordercenter.tb_custoperatelog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custoperatelog a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除收藏风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ID

    FROM serviceordercenter.tb_favoriteriskorder b,

         serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderId = InOrderId

      and a.id = b.RiskStatusId;



    insert into serviceordercenterhis.tb_favoriteriskorder

    select a.*

    from serviceordercenter.tb_favoriteriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_favoriteriskorder a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除处理的风控工单

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_handleriskorder a,

         serviceordercenter.tb_workriskstatus b

    WHERE a.RiskStatusId = b.id

      and b.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_handleriskorder

    select a.*

    from serviceordercenter.tb_handleriskorder a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_handleriskorder a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控工单状态

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workriskstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workriskstatus

    select a.*

    from serviceordercenter.tb_workriskstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workriskstatus a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除风控数据信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskdatatime a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatime

    select a.*

    from serviceordercenter.tb_riskdatatime a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatime a,

      tmp_singleorderid B

 WHERE a.ID = B.Id

   AND B.uuid = @UU;*/

    #删除



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_riskhistoryorder a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskhistoryorder

    select a.*

    from serviceordercenter.tb_riskhistoryorder a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskhistoryorder a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除控工单行为明细表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior_detail a,

         serviceordercenter.tb_riskorderbehavior b

    WHERE b.WorkOrderId = InOrderId

      and a.BehaviorDetailId = b.id;



    insert into serviceordercenterhis.tb_riskorderbehavior_detail

    select a.*

    from serviceordercenter.tb_riskorderbehavior_detail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior_detail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单行为表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskorderbehavior a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskorderbehavior

    select a.*

    from serviceordercenter.tb_riskorderbehavior a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskorderbehavior a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo

    select a.*

    from serviceordercenter.tb_riskworkorderinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除风控工单指标标签信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderlabelinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderlabelinfo

    select a.*

    from serviceordercenter.tb_riskworkorderlabelinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderlabelinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控数据信息冗余历史

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskdatatimehis a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskdatatimehis

    select a.*

    from serviceordercenter.tb_riskdatatimehis a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskdatatimehis a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



 #删除风控工单历史信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfo_his  a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfo_his

    select a.*

    from serviceordercenter.tb_riskworkorderinfo_his  a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfo_his a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 风控工单指标信息冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_riskworkorderinfohis   a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_riskworkorderinfohis

    select a.*

    from serviceordercenter.tb_riskworkorderinfohis   a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_riskworkorderinfohis  a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



#删除 通用域_工单评价信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workorderevaluateinfo    a

    WHERE a.WorkOrderId = InOrderId;



    insert into serviceordercenterhis.tb_workorderevaluateinfo

    select a.*

    from serviceordercenter.tb_workorderevaluateinfo    a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderevaluateinfo   a,

   tmp_singleorderid b

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除二手车检测结果备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_usedcarcheckinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_usedcarcheckinfo

    select a.*

    from serviceordercenter.tb_usedcarcheckinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_usedcarcheckinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除工单地址信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaddressinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workaddressinfo

    select a.*

    from serviceordercenter.tb_workaddressinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workaddressinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除业务域_工单业务信息JOSN冗余

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workbussinessjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workbussinessjsoninfo(Id,WorkOrderId, BussinessJson,DynamicId,InsertTime,Deleted)

    select a.Id,a.WorkOrderId, a.BussinessJson,a.DynamicId,a.InsertTime,a.Deleted

    from serviceordercenter.tb_workbussinessjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workbussinessjsoninfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除信贷信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcreditinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workcreditinfo

    select a.*

    from serviceordercenter.tb_workcreditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workcreditinfo a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/

    #删除工单同步状态表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_interactivestate a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_interactivestate

    select a.*

    from serviceordercenter.tb_interactivestate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_interactivestate a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除抵押权人变更记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_mortgageechangerecord a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_mortgageechangerecord

    select a.*

    from serviceordercenter.tb_mortgageechangerecord a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_mortgageechangerecord a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除三合一编号对比

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_numdiffinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_numdiffinfo

    select a.*

    from serviceordercenter.tb_numdiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_numdiffinfo a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除设备状态日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_devicestatuslog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_devicestatuslog

    select a.*

    from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_devicestatuslog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除客户字段推送翻译

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_custcolumn a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_custcolumn

    select a.*

    from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_custcolumn a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除异常工单审核信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_appointauditinfo a,

         serviceordercenter.tb_appointment b

    WHERE b.WorkOrderID = InOrderId

      and a.AppointId = b.id;



    insert into serviceordercenterhis.tb_appointauditinfo

    select a.*

    from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointauditinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除预约信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointment a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointment

    select a.*

    from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointment a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除预约拼接信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_appointmentconcat a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_appointmentconcat

    select a.*

    from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_appointmentconcat a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除已办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatedinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatedinfo

    select a.*

    from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatedinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除待办信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_operatinginfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_operatinginfo

    select a.*

    from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_operatinginfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备案信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_recordinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_recordinfo

    select a.*

    from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_recordinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除付款日志

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_paylog a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_paylog

    select a.*

    from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_paylog a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除备注信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_remarkinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_remarkinfo

    select a.*

    from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_remarkinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除车架号比对信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_vindiffinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_vindiffinfo

    select a.*

    from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_vindiffinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workcarinfo

    select a.*

    from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/





    #删除费用明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeedetail

    select a.*

    from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除费用信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeinfo

    select a.*

    from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单单次付款信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfeeitem a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeitem

    select a.*

    from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单费用备注表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfeeremark a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfeeremark

    select a.*

    from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfeeremark a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除检修物料信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsdetail

    select a.*

    from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除检修商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workfixgoodsinfo

    select a.*

    from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workfixgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除检修其他项目明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixitemdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixitemdetail

    select a.*

    from serviceordercenter.tb_workfixitemdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixitemdetail a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;*/



    #删除检修其他项目信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workfixiteminfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixiteminfo

    select a.*

    from serviceordercenter.tb_workfixiteminfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixiteminfo a,

       tmp_singleorderid B

  WHERE a.ID = B.id

    AND B.uuid = @UU;*/



    #删除工单检修配件关系子表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixpartsrelation a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixpartsrelation

    select a.*

    from serviceordercenter.tb_workfixpartsrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixpartsrelation a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/

    #删除工单检修配件表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workfixparts a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workfixparts

    select a.*

    from serviceordercenter.tb_workfixparts a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workfixparts a,

   tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息表



    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowinfo a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workflowinfo

    select a.*

    from serviceordercenter.tb_workflowinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workflowinfo a,

  tmp_singleorderid B

WHERE a.ID = B.Id

AND B.uuid = @UU;*/



    #删除工作流信息json表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workflowjsoninfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workflowjsoninfo(id, workorderid, runtimeitemid, stepjson, inserttime, deleted)

    select a.id, a.workorderid, a.runtimeitemid, a.stepjson, a.inserttime, a.deleted

    from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workflowjsoninfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail a

    WHERE a.WorkOrderID = InOrderId;





    insert into serviceordercenterhis.tb_workgoodsdetail

    select a.*

    from serviceordercenter.tb_workgoodsdetail a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail a,

   tmp_singleorderid B

WHERE a.ID = B.id

AND B.uuid = @UU;*/



    #删除其他商品明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_other a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_other

    select a.*

    from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_other a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除工单商品明细表(服务配件信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_otherinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_otherinfo

    select a.*

    from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workgoodsdetail_otherinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单商品明细表(服务对应硬件信息)

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsdetail_extra a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsdetail_extra

    select a.*

    from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsdetail_extra a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除商品信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workgoodsinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workgoodsinfo

    select a.*

    from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workgoodsinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/

    #删除保险信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workinsurinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workinsurinfo

    select a.*

    from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workinsurinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除工单操作信息

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperateinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workoperateinfo

    select a.*

    from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workoperateinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单运维信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workoperationinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into tb_workoperationinfo

    select a.*

    from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workoperationinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除工单主单关系表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderrelation a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderrelation

    select a.*

    from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;



    /*delete a from serviceordercenter.tb_workorderrelation a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除移机新车主车辆信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_worknewcarinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_worknewcarinfo

    select a.*

    from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_worknewcarinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除状态信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workorderstatus a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workorderstatus

    select a.*

    from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workorderstatus a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/



    #删除易鑫保险后生效日期记录表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workpolicyeffdate a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpolicyeffdate

    select a.*

    from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpolicyeffdate a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;*/

    #删除按单调价日志表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workpriceedit_log a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workpriceedit_log

    select a.*

    from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workpriceedit_log a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除隐私呼叫信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workprivatephone a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workprivatephone

    select a.*

    from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.tb_workprivatephone a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除文件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, b.ResourceId

    FROM serviceordercenter.tb_workresourceinfo b

    WHERE b.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.basic_resourceitem

    select a.*

    from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*delete a from serviceordercenter.basic_resourceitem a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;*/



    #删除附件信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workresourceinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workresourceinfo

    select a.*

    from serviceordercenter.tb_workresourceinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

  delete a

  from serviceordercenter.tb_workresourceinfo a,

       tmp_singleorderid B

  WHERE a.ID = B.Id

    AND B.uuid = @UU;

    */



    #删除录错调整明细信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, A.ID

    FROM serviceordercenter.tb_workrevisedetail a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workrevisedetail

    select a.*

    from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

    /*

    delete a from serviceordercenter.tb_workrevisedetail a,

         tmp_singleorderid B

    WHERE a.ID = B.Id

      AND B.uuid = @UU;

     */



    #删除录错调整信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workreviseinfo a

    WHERE a.WorkOrderID = InOrderId;



    insert into serviceordercenterhis.tb_workreviseinfo

    select a.*

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workreviseinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */



    #删除售后信息表

    SET @UU = UUID();

    INSERT INTO tmp_singleorderid(UUID, ID)

    SELECT @UU, a.ID

    FROM serviceordercenter.tb_workaftersaleinfo a

    WHERE a.WorkOrderID = InOrderId;

    insert into serviceordercenterhis.tb_workaftersaleinfo

    select a.*

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

    /*

    delete a

    from serviceordercenter.tb_workaftersaleinfo a,

         tmp_singleorderid B

    WHERE a.ID = B.id

      AND B.uuid = @UU;

     */

 set @OrderDelted = (select Deleted from tb_workorderinfo where id = InOrderId);

 call proc_MoveHisWorkFlowBySingle(InOrderId,@OrderDelted);

    #恢复隔离级别

    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;



    #事务提交/回滚模块

    IF sys_ErrCode <> '00000'

    THEN

        SET Result = 1;

        UPDATE tmp_delorderid SET Result = 1 WHERE WorkorderId = InOrderId;

        ROLLBACK;

    ELSE

        SET Result = 0;

        UPDATE tmp_delorderid SET Result = 0 WHERE WorkorderId = InOrderId;

        COMMIT;

    END IF;



    #返回结果

    SELECT Result AS ErType, sys_ErrMessage AS ErMessage;



    #日志记录生成模块

    /*

    INSERT INTO sys_procedurelog(IsSuccess, Logger, ProcedureName, TimeSpan, ErrCode, ErrMessage, LogTime)

    SELECT Result                                        AS IsSuccess,

           'MoveWorkOrderInfoBySingle'               AS Logger,

           'proc_MoveWorkOrderInfoBySingle'          AS ProcedureName,

           TIMESTAMPDIFF(SECOND, sys_StartTime, NOW())   AS TimeSpan,

           sys_ErrCode                                   AS ErrCode,

           concat(InOrderId, ifnull(sys_ErrMessage, '')) AS ErrMessage,

           NOW()                                         AS LogTime;*/



END

Function 差异

fn_GetAssignorById

{
  "message": "\u51fd\u6570 fn_GetAssignorById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAssignorById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAssignorById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次分派人姓名账号'
BEGIN
  DECLARE Assignor VARCHAR(50) ;
  
  IF OutType=1 #获取Code
  THEN
	
  SELECT a.OperCode INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;

  IF OutType=2 #获取Name
  THEN 	
  
  SELECT a.OperName INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
  
  IF OutType=3 #获取Id
  THEN 	
  
  SELECT a.OperId INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
	

  RETURN Assignor;
END

fn_GetOrderReceivingStatus

{
  "message": "\u51fd\u6570 fn_GetOrderReceivingStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderReceivingStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderReceivingStatus`(
`InPauseBeginTime` datetime ,`InPauseEndTime` datetime ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据暂停接单时间段获取接单状态'
BEGIN

IF(InPauseBeginTime IS NULL)
THEN RETURN '正常接单';
END IF;

IF( InPauseBeginTime < NOW() )
THEN

 IF (InPauseEndTime IS NULL)
 THEN RETURN '暂停接单';
 END IF;
 
 IF (InPauseEndTime > NOW() )
 THEN RETURN CONCAT('暂停接单(截止于',InPauseEndTime,')');
 END IF;

END IF;

IF( InPauseBeginTime > NOW() )
THEN RETURN CONCAT('正常接单接单(截止于',InPauseBeginTime,')');
END IF;

IF( InPauseEndTime < NOW() )
THEN RETURN '正常接单';
END IF;
return null;
END

fn_GetServiceAuditLastRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检备注'
BEGIN
  DECLARE OutAuditRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditRemark;
END

fn_getstaffacquisitiontaginfo

{
  "message": "\u51fd\u6570 fn_getstaffacquisitiontaginfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_getstaffacquisitiontaginfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_getstaffacquisitiontaginfo`(
`InId` varchar(12) charset utf8 collate utf8_general_ci ,`InTag` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取人员招募标签表信息'
return

(select group_concat(b1.ValueName separator '、') as ValueName

        from tb_staffacquisitiontaginfo b1

        where b1.StaffAcquisitionInfoId= InId

          and b1.Deleted = 0

          and b1.tag = InTag

       )

fn_GetLastAppointChangeRemarkById

{
  "message": "\u51fd\u6570 fn_GetLastAppointChangeRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointChangeRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointChangeRemarkById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈记录日志'
BEGIN

	RETURN (

	SELECT ChangeRemark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkFlowLastPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowLastPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowLastPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowLastPersonInfo`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStepName` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤最后一次处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT a.OperCode INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;
IF OutType=2 #获取Name
THEN
SELECT a.OperName INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_GetSendRemarkByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendRemarkByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendRemarkByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendRemarkByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单备注'
BEGIN
  DECLARE OutSendRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutSendRemark
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;

  RETURN OutSendRemark;
END

fn_GetAuditStatusById

{
  "message": "\u51fd\u6570 fn_GetAuditStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(1)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检是否通过(弃用)'
BEGIN
	RETURN null;
	/*(
    SELECT `AuditStatus`  
      FROM `tb_workorderstatus` a 
     WHERE a.`WorkOrderId`=InOrderId
     AND a.`Deleted`=0
     LIMIT 1);*/
END

fn_GetTaskOrderTime

{
  "message": "\u51fd\u6570 fn_GetTaskOrderTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTaskOrderTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTaskOrderTime`(
`InOrderId` varchar(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单的首次接单时间 update 3.4.0 新增提交备案'
BEGIN
	RETURN 
	(
    SELECT DoneAt 
      FROM `tb_workflowinfo` 
     WHERE `NextStepName` IN ('提交处理结果','提交备案')
       AND WorkOrderId=InOrderId
     ORDER BY DoneAt  
     LIMIT 1);
END

fn_GetServiceOrderStatus

{
  "message": "\u51fd\u6570 fn_GetServiceOrderStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceOrderStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceOrderStatus`(
`InWorkOrderStatus` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服工单状态'
BEGIN
	RETURN CASE InWorkOrderStatus
                WHEN 0 THEN '待提交' 
                WHEN 1 THEN '下单申请中'
                WHEN 2 THEN '下单失败'
                WHEN 3 THEN '调度中'
                WHEN 4 THEN '等待工程师接单'
                WHEN 5 THEN '重新调度'
                WHEN 6 THEN '已接单'
                WHEN 7 THEN '客户审核中'
                WHEN 8 THEN '客户驳回'
                WHEN 9 THEN '已完成'
                WHEN 10 THEN '已关闭'
                WHEN 11 THEN '质检中'
                WHEN 12 THEN '质检驳回'
            END ;
END

fn_GetAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InRemarkType` smallint(1) ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取不同类型预约语录拼接'
BEGIN
DECLARE OutRemark varchar(500);

SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND IF(a.AppointSource=3,1,IFNULL(a.AppointSource,1))=InRemarkType
AND a.Deleted=0;

RETURN OutRemark;
END

fn_GetAuditCurrentPersonInfo

{
  "message": "\u51fd\u6570 fn_GetAuditCurrentPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditCurrentPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditCurrentPersonInfo`(
		InWorkOrderId char(12),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检驳回处理人信息'
BEGIN
	DECLARE OutPerson varchar(50);

    IF OutType=1 #获取Code
    THEN
    SELECT a.OperCode  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
	END IF;


    IF OutType=2 #获取Name
    THEN
	SELECT a.OperName  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
    
	END IF;

    IF OutType=3 #获取Id
    THEN
	SELECT a.OperId  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
  
    END IF;


RETURN OutPerson;
END

fn_GetServiceAuditRejectRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取质检不通过备注*/
DECLARE OutAuditRemark VARCHAR(200);

  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检不通过','质检驳回')
  AND a.WorkOrderId=InOrderId
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditRemark;

END

fn_GetLastAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因'
BEGIN

	RETURN (

	SELECT Remark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkFlowNextTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowNextTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowNextTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowNextTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取下一步骤结束时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.NextStepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetAfcReturnTypeByCode

{
  "message": "\u51fd\u6570 fn_GetAfcReturnTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcReturnTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcReturnTypeByCode`(
`InCode` char(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据金融回款类型CODE获取名称'
BEGIN

  RETURN (select name from basic_datadictionary dic1

       where dic1.deleted = 0

       and dic1.code =  InCode

       and exists (select 1 from basic_datadictionary dic2 where dic2.code = 'ReturnType' and dic2.deleted = 0 and dic2.id = dic1.ParentId)

      limit 1);

END

fn_GetLastAppointStatusCodeById

{
  "message": "\u51fd\u6570 fn_GetLastAppointStatusCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointStatusCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointStatusCodeById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最后一次异常反馈状态'
BEGIN

	RETURN (

	SELECT AppointStatus

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3)

       AND `Deleted` =0

			 and AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkflowAllSteps

{
  "message": "\u51fd\u6570 fn_GetWorkflowAllSteps \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkflowAllSteps`(InId VARCHAR(100)) RETURNS text CHARSET utf8
    DETERMINISTIC
BEGIN
   #########################根据工单Id(或appcode)获取工作流所有的步骤

	 

	 

	 
    DECLARE stepstring text;

    IF (LEFT(InId, 2) = 'WI') THEN
        -- 如果是工作流ID
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(d.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
				left join workflowruntimesteps d on c.Id=d.RuntimeItemId and d.WorkflowNodeId=a.Id and d.Deleted =0


        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND c.`TargetEntityId` = InId   
        ORDER BY a.SortOrder;
    ELSE
        -- 如果是应用程序代码 (AppCode)
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(e.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )				

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
        JOIN tb_workorderinfo d ON c.TargetEntityId = d.Id
			  left join workflowruntimesteps e on c.Id=e.RuntimeItemId and e.WorkflowNodeId=a.Id and e.Deleted =0

				
        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND d.deleted = 0
          AND d.AppCode = InId
        ORDER BY a.SortOrder;
    END IF;

		set stepstring=REPLACE(stepstring,'[至无 ]','');
    RETURN stepstring;
END

fn_GetWorkFlowPersonInforeport

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInforeport \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInforeport`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInforeport`(
		InWorkOrderId char(12),
		InStepName varchar(50),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;
IF OutType=2 #获取Name
THEN
SELECT d.`FullName` INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`FullName`   INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;

RETURN OutPerson;
END

fn_GetCustomerAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetCustomerAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCustomerAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCustomerAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取客户异常反馈记录拼接(弃用)'
BEGIN
DECLARE OutRemark varchar(500);
/*
SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND a.AppointSource = 3
AND a.Deleted=0;*/

RETURN OutRemark;
END

fn_GetServiceAuditFirstPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperName INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY StartedAt ASC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetAcceptCodeById

{
  "message": "\u51fd\u6570 fn_GetAcceptCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptCodeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取接单人Code'
BEGIN
	RETURN (
	SELECT OperCode
      FROM `tb_workflowinfo` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
       AND `NextStepName` ='提交处理结果'
     ORDER BY `StartedAt`  DESC 
     LIMIT 1
	);
END

fn_GetAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetAppointStatusByCode

{
  "message": "\u51fd\u6570 fn_GetAppointStatusByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointStatusByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointStatusByCode`(
`InCode` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取预约状态名称,预约状态(1 改约,2 等通知, 3 请求关闭, 4 客服异常反馈记录,5请求关闭(客户审核),6需再次上门,7智能改约,8 改约客户审核(易鑫)9等通知(客户审核易鑫),10请求关闭客户审核(易鑫),11跟进记录)'
BEGIN

	RETURN (

	SELECT CASE InCode WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'
                       WHEN 11 THEN '跟进记录'

           END 

        );

END

fn_GetUserRoleConcatbyId

{
  "message": "\u51fd\u6570 fn_GetUserRoleConcatbyId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetUserRoleConcatbyId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetUserRoleConcatbyId`(
`InUserInfoId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ,`InRuleGroupCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネル￧ᄏト¥ミネ¦ᄎᄎ¥ムリID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

	RETURN (

		SELECT

			a.UserRoleConcat 

		FROM

			(

			SELECT

				a.UserInfoId,

				a.RuleGroupCode,

				GROUP_CONCAT(CONCAT_WS(';',CONCAT( x.ConcatStr, ':', y.ConcatStr ),CONCAT( x.ConcatStr, ':', z.ConcatStr )) SEPARATOR ';' 

			    ) AS UserRoleConcat 

			FROM

				tb_userrulegroupinfo a

				LEFT JOIN tb_userruleinfo b ON a.Id = b.UserRuleGroupInfoId 

				AND b.Deleted = 0 

				AND b.RuleCode = 'OrderType'

				LEFT JOIN tb_userruleinfo c ON a.Id = c.UserRuleGroupInfoId 

				AND c.Deleted = 0 

				AND c.RuleCode = 'Areas'

				LEFT JOIN tb_userruleinfo d ON a.Id = d.UserRuleGroupInfoId 

				AND d.Deleted = 0 

				AND b.RuleCode = 'CustStore'

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) x ON b.Id = x.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) y ON c.Id = y.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) z ON d.Id = z.UserRuleId 

			WHERE

				a.Deleted = 0 

				AND a.RuleGroupCode <> 'AFCRule001'

			and a.RuleGroupCode = InRuleGroupCode

			AND a.UserInfoId = InUserInfoId

			GROUP BY

				a.UserInfoId,

				a.RuleGroupCode 

			) a

	    limit 1

		);

	

END

fn_GetLastFailAppointConcat

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointConcat`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取全部预约记录中最后一条'
BEGIN
	RETURN (
	SELECT CONCAT(IF(CreatedAt IS NOT NULL,CONCAT('记录提交时间:',CreatedAt,';'),''),
	IF(ApplyReason IS NULL AND FailText IS NULL,'',CONCAT('申请原因:',CONCAT(IFNULL(ApplyReason,''),IFNULL(FailText,'')),';')),
	IF(Remark IS NOT NULL,CONCAT('描述:',Remark,';'),''),
	IF(NextContactTime IS NOT NULL,CONCAT('下次联系时间:',NextContactTime,';'),''))
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
     ORDER BY `CreatedAt` DESC 
     LIMIT 1);

END

fn_GetQualityPerById

{
  "message": "\u51fd\u6570 fn_GetQualityPerById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetQualityPerById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetQualityPerById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取最新质检人id或工号或姓名'
BEGIN
	RETURN (
	SELECT  CASE InType 
                 WHEN 1 THEN OperId
                 WHEN 2 THEN OperCode
                 WHEN 3 THEN OperName
            END 
      FROM `tb_workflowinfo`   
     WHERE `WorkOrderId` =InWorkOrderId
       AND `StepName` IN ('质检','质检不通过')
       AND `Deleted` =0
     ORDER BY DoneAt DESC 
     LIMIT 1);
END

fn_GetStatusNameByCode

{
  "message": "\u51fd\u6570 fn_GetStatusNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusNameByCode`(
InCode smallint(1)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutStatusName varchar(50);
SELECT a.WorkStatusName INTO OutStatusName
FROM basic_workflowstatus a
WHERE a.WorkStatus=InCode
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusName;
END

fn_GetWorkPayStatus

{
  "message": "\u51fd\u6570 fn_GetWorkPayStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkPayStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkPayStatus`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取单据付款状态'
BEGIN
	RETURN (
	SELECT PayStatus
      FROM tb_workfeeinfo
     WHERE WorkOrderId=InOrderId
       AND Deleted=0
     ORDER BY InsertTime DESC
     LIMIT 1);

END

fn_GetWorkOrderAuditTime

{
  "message": "\u51fd\u6570 fn_GetWorkOrderAuditTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderAuditTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderAuditTime`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取首次分派开始时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT b.StartedAt INTO OutTime
FROM workflowruntimeitems a,
workflowruntimesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;

IF OutTime IS NULL
THEN
SELECT b.StartedAt INTO OutTime
FROM workflowcompleteitems a,
workflowcompletesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;
END IF;

RETURN OutTime;

END

fn_nexbatchtval

{
  "message": "\u51fd\u6570 fn_nexbatchtval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nexbatchtval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nexbatchtval`(
Dseq_no char(2) CHARSET utf8,
BatchValue INT(11)
) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value - BatchValue)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no, LPAD(LAST_INSERT_ID(), 10, 0));
        
END

fn_GetSubjectClassNameByCode

{
  "message": "\u51fd\u6570 fn_GetSubjectClassNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectClassNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectClassNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE SubjectClassName varchar(50);

SELECT Name INTO SubjectClassName
FROM tb_subjectclass
WHERE Code=InCode
AND Deleted=0;

RETURN SubjectClassName;
END

fn_GetAFCSetOutTimeById

{
  "message": "\u51fd\u6570 fn_GetAFCSetOutTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCSetOutTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCSetOutTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN
  DECLARE SetOutTime VARCHAR(50) ;
  SELECT a.DoneAt INTO SetOutTime
  FROM tb_workflowinfo a
  WHERE StepName= '出发'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.StepStatus = '1'
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN SetOutTime;
END

fn_GetAfcLastDispatcherTimeById

{
  "message": "\u51fd\u6570 fn_GetAfcLastDispatcherTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcLastDispatcherTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcLastDispatcherTimeById`( InWorkOrderId char(12) ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE DispatcherTime DateTime;

SELECT a.DoneAt INTO DispatcherTime
FROM tb_workflowinfo a
WHERE a.StepName IN ( '分配工单', '重新派单','派单')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN DispatcherTime;
END

fn_GetRequestCloseTimeById

{
  "message": "\u51fd\u6570 fn_GetRequestCloseTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestCloseTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestCloseTimeById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求关闭时间'
BEGIN
	RETURN (
		SELECT AppointTime
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetDictNameById

{
  "message": "\u51fd\u6570 fn_GetDictNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameById`(
InId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_datadictionary
WHERE Id=InId
AND Deleted=0;

RETURN OutDictName;
END

fn_GetAfcDispatcherCode

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherCode`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperCode INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;



IF OutPerson IS NULL

THEN

SELECT CreatePersonCode INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;



RETURN OutPerson;

END

fn_GetServiceAuditLastPersonNameById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonNameById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.`OperName`  INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  #AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetServiceAuditRejectReasonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectReasonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服金融_根据工单Id获取质检不通过原因*/
DECLARE AuditRejectReason VARCHAR(1000);

  SELECT GROUP_CONCAT(DoneAt,OperName,Remark ORDER BY `DoneAt` DESC SEPARATOR ';') INTO  AuditRejectReason
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId= InOrderId
  AND a.`StepStatus` = '4'
  GROUP BY WorkOrderId;

RETURN AuditRejectReason;

END

fn_GetTIMECHARByLoginName

{
  "message": "\u51fd\u6570 fn_GetTIMECHARByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTIMECHARByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTIMECHARByLoginName`(InLoginName varchar(50)) RETURNS varchar(2000) CHARSET utf8
    COMMENT '获取打卡信息工作时间字符串'
BEGIN

    declare I int default 1; #ALLTIME 数组长度,变量

    DECLARE TIMECHAR varchar(2000) DEFAULT ''; #返回值

    declare M int default 1; #ALLTIME.WORKTIME 数组长度,变量

    declare N int default 1; #ALLTIME.WORKTIME 数组长度-1,常量

    DECLARE TIMECHAR1 varchar(2000) DEFAULT ''; #ALLTIME.WORKTIME 小循环结果拼接值



    select ifnull(json_length(json_unquote(json_extract(WorkTimeJson, '$.AllTime'))), 0)

    into I

    from serviceordercenter.tb_userclockininfo

    where LoginName = InLoginName

      and Deleted = 0;



    while I > 0

        do

            SET I = I - 1;

            select ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0),

                   ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0) - 1

            into M,N

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            select

              concat(

                IFNULL(

                  case

                    when N > 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                             '—',

                             fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                             ':',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))),'-',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    when N = 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                      '—',

                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                      ':',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    end, ''), TIMECHAR)

            into TIMECHAR

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR1 = '';



            while M > 0 AND N >= 0

                do

                    set M = M - 1;

                    select

                      concat(

                        IFNULL(case

                                 when json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                                    - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                                    > N

                                 then

                                    concat(

                                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', M, ']')),1),

                                           '、')

                                 end, ''), TIMECHAR1)

                    into TIMECHAR1

                    from serviceordercenter.tb_userclockininfo

                    where LoginName = InLoginName

                      and Deleted = 0;



                END WHILE;



            select iF(TIMECHAR1 = '', '',

                      concat(TIMECHAR1, ':',

                        json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                                                 json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                     )

            into TIMECHAR1

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR = concat(ifnull(TIMECHAR, ''), ifnull(TIMECHAR1, ''));



        END WHILE;



    set TIMECHAR = replace(replace(TIMECHAR, '、:', ':'), ';', ';

');

    return TIMECHAR;

END

fn_GetWorkerInfo

{
  "message": "\u51fd\u6570 fn_GetWorkerInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkerInfo`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,
InType int 
) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取人员、账号等信息信息'
BEGIN
 
											

DECLARE OutResult VARCHAR(50) DEFAULT NULL;
 
#接单人(账号)
IF InType=10
 THEN SELECT RecordPersonCode INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;  
#接单人(姓名)							 
ELSEIF InType=11 
 THEN  SELECT RecordPersonName INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1; 
 
#接单人总工(账号) 

-- 若账号属于三方服务团队,则此处取值为账号所属三
-- 值为实际操作提交处理结 取值为实际操作提交处理结
-- 级架构的负责人账号/姓名
ELSEIF InType=12
 THEN 
 
 SELECT 
 IFNULL(E.LoginName,A.RecordPersonCode) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
#接单人总工(姓名) 
ELSEIF InType=13
 THEN
  SELECT 
 IFNULL(E.UserName,A.RecordPersonName) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
 
 
#备案人(账号) 
ELSEIF InType=20 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#备案人(姓名) 
ELSEIF InType=21 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
 
 #备案人总工(账号) 
ELSEIF InType=22
 THEN  
 SELECT  

 IFNULL(E.LoginName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) ) 

 INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
  #备案人总工(姓名) 
ELSEIF InType=23
 THEN  
 SELECT  

 IFNULL(E.UserName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) ) 

	INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
 
 
#施工人(账号) 
ELSEIF InType=30
 THEN  SELECT ServiceCode INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#施工人(姓名) 
ELSEIF InType=31 
 THEN  SELECT ServiceName INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   

 
#实际施工人(账号) 
ELSEIF InType=32
 THEN  SELECT IFNULL(WorkerCode,ServiceCode) INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#实际施工人(姓名) 
ELSEIF InType=33 
 THEN  SELECT IFNULL(WorkerName,ServiceName)  INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
              
							
							
END IF;


RETURN OutResult;
 
END

fn_GetFirstAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因(弃用)'
BEGIN
	RETURN null /*(
	SELECT Remark
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1)*/;

END

fn_GetFlowReturnReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetFlowReturnReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFlowReturnReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFlowReturnReasonByOrderId`(
InOrderId char(12)) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutReason varchar(500);
SELECT GROUP_CONCAT(a.Remark) INTO OutReason
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName RLIKE '退回'
AND a.Deleted=0;

RETURN OutReason;
END

fn_GetLastRecordTimeById

{
  "message": "\u51fd\u6570 fn_GetLastRecordTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastRecordTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastRecordTimeById`(InWorkOrderId char(12)) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '最新备案时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName IN ('提交处理结果','重新提交结果')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetWorkTagCodeById

{
  "message": "\u51fd\u6570 fn_GetWorkTagCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTagCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTagCodeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_GetServiceAuditLastTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检时间'
BEGIN
  DECLARE OutAuditTime VARCHAR(50) ;
  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetSubjectNameConcat

{
  "message": "\u51fd\u6570 fn_GetSubjectNameConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectNameConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectNameConcat`(
InWorkOrderId CHAR(12)
) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服服务科目信息(弃用)'
BEGIN
	RETURN null ;
	/*(SELECT GROUP_CONCAT(IFNULL(SubjectName,'') ORDER BY InsertTime  SEPARATOR '+')
	FROM tb_workservicesubject
	WHERE WorkOrderId=InWorkOrderId
	AND Deleted=0);*/

END

fn_dfnextval

{
  "message": "\u51fd\u6570 fn_dfnextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dfnextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dfnextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE df_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName= '质检不通过'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetVhsPayStatusById

{
  "message": "\u51fd\u6570 fn_GetVhsPayStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsPayStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsPayStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取付款状态'
BEGIN
  DECLARE OutPayStatus smallint DEFAULT 0;

  IF NOT EXISTS(SELECT 1
  FROM tb_workfeeitem a
  WHERE a.WorkOrderId=InOrderId
  AND a.PayItemStatus=0
  AND a.Deleted=0) THEN
  SET OutPayStatus=1;
  END IF;

  RETURN OutPayStatus;
END

fn_GetTeamNameByCode

{
  "message": "\u51fd\u6570 fn_GetTeamNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTeamNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTeamNameByCode`(
`InCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据团队Code获取团队名称'
BEGIN
    DECLARE OutTeamName varchar(50);
    SELECT TeamName INTO OutTeamName
    FROM basic_teaminfo
    WHERE TeamCode=InCode
    AND Deleted=0
    LIMIT 1;

	RETURN OutTeamName;
END

fn_GetCarBussinessTypeById

{
  "message": "\u51fd\u6570 fn_GetCarBussinessTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCarBussinessTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCarBussinessTypeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_formversionnumber

{
  "message": "\u51fd\u6570 fn_formversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_formversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_formversionnumber`(InformInfoCode varchar(30)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
    INTO InVersionNumber
    FROM df_forminfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_forminfo
                WHERE Deleted = 0
                GROUP BY FormCode) b
    ON a.Id = b.Id
    WHERE  FormCode = InformInfoCode;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;
     
    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;

END

fn_GetLastFailAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈失败原因'
BEGIN

	RETURN (

	SELECT FailText

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetServiceAuditAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取最新质检通过时间*/
DECLARE OutAuditTime DATETIME;

  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND `StepStatus` =1
 
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditTime;

END

fn_GetFirstAppointPersonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointPersonById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈提交人姓名/账号(弃用)'
BEGIN
/*
	IF OutType = 1 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1);
	ELSEIF OutType=2 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC  
     LIMIT 1);
	END IF;*/
    return null;
END

fn_GetAscriptionNameByCode

{
  "message": "\u51fd\u6570 fn_GetAscriptionNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionNameByCode`(
`InCode` smallint(1) ) RETURNS varchar(64) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '人员归属翻译'
BEGIN
	
	DECLARE OutTeamName varchar(50);

	SELECT 
	CASE InCode 
	WHEN 0 THEN  '外勤'
	WHEN 1 THEN  '内勤'
	WHEN 2 THEN  '优工'
	WHEN 3 THEN  '特工-外访'
	WHEN 4 THEN  '特工-催收'
	ELSE NULL
	END AS Ascription INTO OutTeamName;
	RETURN OutTeamName
	;

END

fn_GetSendPersonByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendPersonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendPersonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendPersonByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单人(弃用)'
BEGIN
  DECLARE OutSendPerson VARCHAR(50) ;
  /*
  SELECT a.OperName INTO OutSendPerson
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;*/

  RETURN OutSendPerson;
END

fn_GetStatusTypeByCode

{
  "message": "\u51fd\u6570 fn_GetStatusTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusTypeByCode`(
InOrderId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutStatusType varchar(50);

SELECT IF(a.TypeStatus=1,'(待关闭)',NULL)
  INTO OutStatusType
FROM tb_workorderstatus a
WHERE a.WorkOrderId=InOrderId
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusType;
END

fn_GetOrderTypeByCode

{
  "message": "\u51fd\u6570 fn_GetOrderTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderTypeByCode`(
InOrderType varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutOrderType varchar(50);

SELECT TypeName INTO OutOrderType
FROM basic_ordertypeinfo
WHERE TypeCode=InOrderType
AND Deleted=0;

RETURN OutOrderType;
END

GetAscriptionByLoginName

{
  "message": "\u51fd\u6570 GetAscriptionByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `GetAscriptionByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `GetAscriptionByLoginName`(INLoginName varchar(50),

                                                                     InType smallint) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据登录名获取员工归属'
BEGIN



    IF InType = 1 THEN #根据登录名获取员工归属

        RETURN (

            select case b.Ascription

                       when 0 then '外勤'

                       when 1 then '内勤'

                       when 2 then '优工'

                       when 3 then '特工-外访'

                       when 4 then '特工-催收'

                       end

            from serviceordercenter.tb_userinfo a,

                 serviceordercenter.tb_userdetail b

            where a.id = b.id

              and a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 2 THEN #获取部门

        RETURN (

            select a.DepartName

            from serviceordercenter.tb_userinfo a

            where a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 3 THEN #获取角色

        RETURN (

            select a.RoleConcat

            from serviceordercenter.tb_userinfo_serv a

            where a.deleted = 0

              and a.LoginCode = INLoginName

            limit 1

        );

    END IF;

END

fn_GetAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取接单时间'
BEGIN

DECLARE OutAcceptTime datetime;
SELECT a.StartedAt INTO OutAcceptTime
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName='提交处理结果'
AND a.Deleted=0
ORDER BY a.StartedAt DESC
LIMIT 1;

IF OutAcceptTime IS NULL
THEN 
SELECT a.InsertTime INTO OutAcceptTime
FROM tb_operatinginfo a,
tb_workorderinfo b
WHERE a.WorkOrderId=b.Id
AND b.Id=InOrderId
AND b.WorkStatus=6
AND a.Deleted=0
AND b.Deleted=0
ORDER BY a.InsertTime DESC
LIMIT 1;
END IF;

RETURN OutAcceptTime;
END

fn_GetAFCPassAuditPersonNameById

{
  "message": "\u51fd\u6570 fn_GetAFCPassAuditPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCPassAuditPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCPassAuditPersonNameById`(

`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN

  DECLARE OutAuditPerson VARCHAR(50) ;

  SELECT a.OperName INTO OutAuditPerson

  FROM tb_workflowinfo a

  WHERE StepName= '质检'

  AND a.WorkOrderId=InOrderId

  AND a.Deleted=0

  -- AND a.StepStatus = '1'

  ORDER BY StartedAt DESC

  LIMIT 1;



  RETURN OutAuditPerson;

END

fn_GetServiceSubjectNameByCode

{
  "message": "\u51fd\u6570 fn_GetServiceSubjectNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceSubjectNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceSubjectNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE ServiceSubjectName varchar(50);

SELECT Name INTO ServiceSubjectName
FROM tb_servicesubject
WHERE Code=InCode
AND Deleted=0;

RETURN ServiceSubjectName;
END

fn_GetWorkTime

{
  "message": "\u51fd\u6570 fn_GetWorkTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTime`(
`InCreateTime` datetime ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单提交时间获取工单生效时间'
BEGIN


RETURN		

date_format((case when(cast(InCreateTime as time)< '08:00:00') then convert(concat(date_format(InCreateTime, '%Y/%m/%d'), ' 08:00:00') using utf8) when(cast(InCreateTime as time)> '18:00:00') then convert(concat(date_format((InCreateTime + interval 1 day), '%Y/%m/%d'), ' 08:00:00') using utf8) else convert(InCreateTime using utf8) end), '%Y/%m/%d %H:%i:%S');

END

fn_GetWorkOrderLastDoneAt

{
  "message": "\u51fd\u6570 fn_GetWorkOrderLastDoneAt \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderLastDoneAt`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderLastDoneAt`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStep` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工作流步骤的最后一次的结束时间(弃用)'
BEGIN
RETURN null;/* (
	SELECT `DoneAt`  
      FROM `tb_workflowinfo` 
     WHERE `StepName` =InStep 
       AND `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId
     ORDER BY `DoneAt` DESC 
    LIMIT 1
);*/
END

fn_GetGoodsNameByWorkorderId

{
  "message": "\u51fd\u6570 fn_GetGoodsNameByWorkorderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetGoodsNameByWorkorderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetGoodsNameByWorkorderId`(

`InWorkOrderId` varchar(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单id获取产品名称'
BEGIN

	RETURN (

		select group_concat( DISTINCT IFNULL(tb_workgoodsinfo.SaleName,ifnull(tb_workgoodsinfo.GoodsName,tb_workgoodsinfo.CoopProductName))  separator ',')

			from  tb_workgoodsinfo 

			where  tb_workgoodsinfo .WorkOrderId= InWorkOrderId

			group by tb_workgoodsinfo.WorkOrderId

	);



END

fn_GetServiceAuditFirstTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检时间'
BEGIN
  DECLARE OutAuditTime DATETIME;
  SELECT a.StartedAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY a.StartedAt ASC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetWorkFlowStartTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowStartTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowStartTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowStartTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
#获取下单审核时间
DECLARE OutTime DATETIME;

SELECT a.`StartedAt`  INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt ASC
LIMIT 1;

RETURN OutTime;
END

fn_dataversionnumber

{
  "message": "\u51fd\u6570 fn_dataversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dataversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dataversionnumber`(InDataEntityCode varchar(50),
        InDataBaseName varchar(60)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
           INTO InVersionNumber    
    FROM df_dataentitiesinfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_dataentitiesinfo
                WHERE Deleted = 0
                GROUP BY DataEntityCode, DatabaseName) b
    ON a.Id = b.Id
    WHERE a.DataEntityCode = InDataEntityCode
    AND a.DatabaseName = InDataBaseName;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;

    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;
	
END

fn_GetNewAppointConcat

{
  "message": "\u51fd\u6570 fn_GetNewAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetNewAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetNewAppointConcat`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取预约记录(首次预约记录在前,剩余预约记录倒叙排列)'
BEGIN
	
  DECLARE OutConcat VARCHAR(1000);

  #首次预约记录
  SELECT CONCAT(
  '首次提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',首次预约备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) INTO OutConcat
  FROM tb_appointment r
  WHERE r.`WorkOrderId`=InOrderId
  AND r.`Deleted`=0
  ORDER BY r.CreatedAt ASC
  LIMIT 1;

  #其他预约记录
  SELECT CONCAT(OutConcat,IFNULL(GROUP_CONCAT(CONCAT(
  '提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) ORDER BY r.CreatedAt DESC),'')) INTO OutConcat
  FROM (
  SELECT a.Remark,a.FailText,a.CreatedAt,
  IF(a.AppCode=@AppCode,@num:=@num+1,@num:=1) AS num,
  @AppCode:=a.AppCode AS AppCode
  FROM (SELECT Remark,FailText,CreatedAt,AppCode
  FROM tb_appointment
  WHERE WorkOrderId=InOrderId
  AND `Deleted`=0
  Order by AppCode,`CreatedAt` ASC) a,
  (SELECT @AppCode:=NULL,@num:=0) s) AS r
  WHERE r.num<>1;

  RETURN OutConcat;


END

fn_GetFeeTypeById

{
  "message": "\u51fd\u6570 fn_GetFeeTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFeeTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFeeTypeById`(InId varchar(12),InFeeType varchar(50),InOrgCode varchar(10),InType smallint) RETURNS varchar(50) CHARSET utf8
    COMMENT '获取指定费用项信息'
BEGIN

IF InType = 1 THEN

RETURN (select  FeeApplyTime

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

ELSEIF InType = 2 THEN

RETURN (select  AuditStatus

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

end if;

END

fn_GetExamineTimeCust

{
  "message": "\u51fd\u6570 fn_GetExamineTimeCust \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetExamineTimeCust`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetExamineTimeCust`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服客户审核通过时间'
BEGIN
	RETURN (
	SELECT `DoneAt` 
      FROM `tb_workflowinfo` 
     WHERE `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId 
       AND `StepName` ='客户审核'
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC 
     LIMIT 1
	);
END

fn_GetWorkFlowAcceptInfonew

{
  "message": "\u51fd\u6570 fn_GetWorkFlowAcceptInfonew \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowAcceptInfonew`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowAcceptInfonew`(
InWorkOrderId char(12),OutType smallint(1)) RETURNS varchar(64) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取分派步骤最后一次处理人和是否直接接单信息(vi_workorderacceptinfo)'
BEGIN
DECLARE OutPerson varchar(50);
#DECLARE OutDirectOrderAccept SMALLINT;

IF OutType=4 #DoneAt
THEN
SELECT a.DoneAt INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName in('分派工单', '重新派单', '分派')
AND a.Deleted=0
ORDER BY `StartedAt` DESC
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_get_next_code

{
  "message": "\u51fd\u6570 fn_get_next_code \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_get_next_code`() RETURNS varchar(20) CHARSET utf8
    DETERMINISTIC
BEGIN

    DECLARE next_code VARCHAR(20);

    DECLARE max_code INT;



    -- 查找 TeamCode = 'ZR01ZR001' 的最大值(截取后四位)

    SELECT MAX(CAST(SUBSTRING(code, 10, 4) AS UNSIGNED))

    INTO max_code

    FROM basic_institutionalinfo

    WHERE TeamCode = 'ZR01ZR001';



    -- 计算下一个最大值

    SET next_code = CONCAT('ZR01ZR001', LPAD(max_code + 1, 4, '0'));



    RETURN next_code;

END

fn_GetAfcDispatcherName

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherName`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperName INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;

/*

IF OutPerson IS NULL

THEN

SELECT CreatePersonName INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;*/



RETURN OutPerson;

END

fn_GetEnterRecord

{
  "message": "\u51fd\u6570 fn_GetEnterRecord \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetEnterRecord`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetEnterRecord`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服录单提交、/审核记录(综合工单)'
BEGIN
	IF OutType=1 THEN 
	RETURN (
	SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('提交处理结果','质检不通过','重新提交结果')
       AND `WorkOrderId`= InWorkOrderId
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC
        ); 
	ELSEIF OutType=2 THEN
	RETURN (
    SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,''),ifnull(Remark,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('质检','客户审核')
       AND `WorkOrderId`= InWorkOrderId
     ORDER BY `StartedAt` DESC
        );
	END IF;
END

fn_GetCloseStatusNameByOrderId

{
  "message": "\u51fd\u6570 fn_GetCloseStatusNameByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCloseStatusNameByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCloseStatusNameByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取工单申请关闭状态名称'
BEGIN
  DECLARE OutStatusName VARCHAR(50);

  SELECT CASE a.`TypeStatus` WHEN 1 THEN '请求关闭(客户审核)' WHEN 2 THEN '请求关闭' WHEN 3 THEN '等通知'
  END INTO OutStatusName
  FROM `tb_workorderstatus` a
  WHERE a.`WorkOrderId`=InOrderId
  AND a.Deleted=0
  LIMIT 1;

	RETURN OutStatusName;
END

fn_GetConcatStrbyUserrRuleId

{
  "message": "\u51fd\u6570 fn_GetConcatStrbyUserrRuleId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetConcatStrbyUserrRuleId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetConcatStrbyUserrRuleId`(
`InUserrRuleId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(500) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネルID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

    DECLARE OutConcatStr varchar(500);



    SELECT

		GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr INTO OutConcatStr

	FROM tb_userruleiteminfo

	WHERE Deleted = 0

    and UserRuleId=InUserrRuleId

	GROUP BY UserRuleId;



RETURN OutConcatStr;

END

fn_GetSaleNameConcatById

{
  "message": "\u51fd\u6570 fn_GetSaleNameConcatById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSaleNameConcatById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSaleNameConcatById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单请求关闭信息'
BEGIN

	RETURN

	(select group_concat(concat(w1.SaleName,

                           if(w1.BrandName is null,'',concat('(',w1.BrandName)),

                           if(w1.GoodsSource is null,'',concat(',',case w1.GoodsSource when 0 then '分仓货品' when 1 then '批发货品'else '' end)),

                           if(w1.BrandName is null,'',')'))ORDER BY w1.CreatedAt DESC SEPARATOR '|'

                   )

        from tb_workgoodsinfo w1

        where w1.WorkOrderId=InOrderId

        and w1.Deleted = 0);

END

fn_GetVhsFileStatus

{
  "message": "\u51fd\u6570 fn_GetVhsFileStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsFileStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsFileStatus`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务文件归还状态'
BEGIN
	RETURN (
	SELECT a.ReceiveState
      FROM tb_vhsworkfilereceiveinfo a
     WHERE a.WorkOrderId=InOrderId
	   AND a.ReceiveType=InType
       AND a.Deleted=0
     LIMIT 1);

END

fn_GetRequestClosePersonById

{
  "message": "\u51fd\u6570 fn_GetRequestClosePersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestClosePersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestClosePersonById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求人'
BEGIN
	RETURN (
		SELECT OperatorName
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetSpecialTagByWorkId

{
  "message": "\u51fd\u6570 fn_GetSpecialTagByWorkId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSpecialTagByWorkId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSpecialTagByWorkId`(
		InWorkOrderId char(12)
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标记取最小Id一条'
BEGIN
	DECLARE OutTag varchar(20);
  
	SELECT a.Value INTO OutTag FROM tb_custcolumn a WHERE a.Deleted = 0 AND a.WorkOrderId = InWorkOrderId AND TypeName = '标记' LIMIT 1;

	RETURN IFNULL(OutTag,'');

END

fn_GetAppointTime

{
  "message": "\u51fd\u6570 fn_GetAppointTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointTime`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取首次约定时间/一线异常反馈提交时间/约定时间/4最新一条异常反馈提交时间'
BEGIN

	IF OutType IN (1,2) THEN 

	RETURN (

	SELECT CASE OutType

           WHEN 1 THEN OrderTime

           WHEN 2 THEN CreatedAt 

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

	ELSEIF OutType=3 THEN 

	RETURN (

	SELECT AppointTime

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC  

     LIMIT 1);

	ELSEIF OutType = 4 THEN 

	RETURN (

	SELECT CreatedAt

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);

	END IF;

END

fn_GetAppointById

{
  "message": "\u51fd\u6570 fn_GetAppointById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS varchar(5000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单ID获取第一条或最后一条预约记录'
BEGIN

	/* #2.5.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';') ORDER BY `CreatedAt`)

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

	); 

	END IF; */







	

	#2.8.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime))) ORDER BY `CreatedAt` DESC SEPARATOR ';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

	);  

	END IF;

END

fn_GetWorkFlowPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInfo`(InWorkOrderId char(12), InStepName varchar(50),

                                                                 OutType smallint(1)) RETURNS varchar(50) CHARSET utf8
BEGIN

    DECLARE OutPerson varchar(50);

    DECLARE InWorkStatus varchar(50);



    SELECT WorkStatus INTO InWorkStatus FROM TB_WORKORDERINFO WHERE ID = InWorkOrderId AND Deleted = 0;

    IF OutType = 1 #获取Code

    THEN

        SELECT a.OperCode

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;



    IF OutType = 2 #获取Name

    THEN

        SELECT a.OperName

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;

    IF InStepName = '当前处理人'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT a.OperCode

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT a.OperName

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

    END IF;



    IF InStepName = '接单'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT c.LoginName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.LoginName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;



        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT c.FullName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.FullName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;

        END IF;

    END IF;



    RETURN OutPerson;

END

fn_GetAscriptionByOrderId

{
  "message": "\u51fd\u6570 fn_GetAscriptionByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionByOrderId`(
`UserId` char(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT 'operId属性翻译'
BEGIN



DECLARE OutAscription varchar(20);



DECLARE Tmp varchar(36);



	SELECT UserCenterUserId INTO Tmp

	FROM ehr_userinfo WHERE UserCenterUserId = UserId LIMIT 1;



	IF Tmp IS NULL THEN 

	RETURN '';

	END IF;

	

	SELECT 

	CASE  StaffPropertyType  

	WHEN '内勤' THEN '自有人员'

	WHEN '外勤' THEN '自有人员'

	ELSE '三方人员'  END  

	INTO OutAscription

	FROM ehr_userinfo WHERE UserCenterUserId = UserId ;





RETURN OutAscription;

END

fn_GetOldldAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetOldldAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOldldAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOldldAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服(冗余老金融工单)_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检','确认工单')
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetDistrictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDistrictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDistrictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDistrictNameByCode`(
		InCode varchar(10)
) RETURNS varchar(100) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   DECLARE Result VARCHAR(100);
   
   SELECT NAME
     INTO Result
     FROM basic_district
    WHERE CODE=InCode;
   
   RETURN IFNULL(Result,'');
	
END

fn_GetReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetReasonByOrderId`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取检修类别/拆机原因'
BEGIN
DECLARE OutReason varchar(200);

SELECT DISTINCT FixPlanName INTO OutReason
FROM tb_workfixgoodsdetail
WHERE WorkOrderId=InWorkOrderId
AND Deleted=0
LIMIT 1;

RETURN OutReason;
END

fn_GetDictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameByCode`(
InCode varchar(10)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_district
WHERE Code=InCode
AND Deleted=0;

RETURN OutDictName;
END

fn_GetOrderNoByPrefix

{
  "message": "\u51fd\u6570 fn_GetOrderNoByPrefix \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderNoByPrefix`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderNoByPrefix`(
		InPrefix char(10)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据前缀获取工单编码'
BEGIN

RETURN CONCAT(InPrefix,DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y%m%d%H%i%s'),UPPER(LEFT(UUID(),7)),UPPER(LEFT(UUID(),2)));

END

fn_nextval

{
  "message": "\u51fd\u6570 fn_nextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetFirstAppointStatusById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointStatusById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈类型'
BEGIN

	RETURN (

	SELECT CASE AppointStatus WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus not in(5)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

END

fn_GetServiceAuditLastPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperCode INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetVhsLastRecentlyChangeTime

{
  "message": "\u51fd\u6570 fn_GetVhsLastRecentlyChangeTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsLastRecentlyChangeTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsLastRecentlyChangeTime`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务最新一条预约时间(弃用)'
BEGIN
	RETURN null ;/*(
	SELECT ap.CreatedAt
      FROM tb_appointment ap
     WHERE ap.WorkOrderId=InOrderId
	   AND ap.AppointStatus=1
       AND ap.Deleted=0
     ORDER BY ap.CreatedAt DESC 
     LIMIT 1);*/

END

fn_GetAssignorById

{
  "message": "\u51fd\u6570 fn_GetAssignorById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAssignorById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAssignorById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次分派人姓名账号'
BEGIN
  DECLARE Assignor VARCHAR(50) ;
  
  IF OutType=1 #获取Code
  THEN
	
  SELECT a.OperCode INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;

  IF OutType=2 #获取Name
  THEN 	
  
  SELECT a.OperName INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
  
  IF OutType=3 #获取Id
  THEN 	
  
  SELECT a.OperId INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
	

  RETURN Assignor;
END

fn_GetOrderReceivingStatus

{
  "message": "\u51fd\u6570 fn_GetOrderReceivingStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderReceivingStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderReceivingStatus`(
`InPauseBeginTime` datetime ,`InPauseEndTime` datetime ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据暂停接单时间段获取接单状态'
BEGIN

IF(InPauseBeginTime IS NULL)
THEN RETURN '正常接单';
END IF;

IF( InPauseBeginTime < NOW() )
THEN

 IF (InPauseEndTime IS NULL)
 THEN RETURN '暂停接单';
 END IF;
 
 IF (InPauseEndTime > NOW() )
 THEN RETURN CONCAT('暂停接单(截止于',InPauseEndTime,')');
 END IF;

END IF;

IF( InPauseBeginTime > NOW() )
THEN RETURN CONCAT('正常接单接单(截止于',InPauseBeginTime,')');
END IF;

IF( InPauseEndTime < NOW() )
THEN RETURN '正常接单';
END IF;
return null;
END

fn_GetServiceAuditLastRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检备注'
BEGIN
  DECLARE OutAuditRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditRemark;
END

fn_getstaffacquisitiontaginfo

{
  "message": "\u51fd\u6570 fn_getstaffacquisitiontaginfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_getstaffacquisitiontaginfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_getstaffacquisitiontaginfo`(
`InId` varchar(12) charset utf8 collate utf8_general_ci ,`InTag` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取人员招募标签表信息'
return

(select group_concat(b1.ValueName separator '、') as ValueName

        from tb_staffacquisitiontaginfo b1

        where b1.StaffAcquisitionInfoId= InId

          and b1.Deleted = 0

          and b1.tag = InTag

       )

fn_GetLastAppointChangeRemarkById

{
  "message": "\u51fd\u6570 fn_GetLastAppointChangeRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointChangeRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointChangeRemarkById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈记录日志'
BEGIN

	RETURN (

	SELECT ChangeRemark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkFlowLastPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowLastPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowLastPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowLastPersonInfo`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStepName` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤最后一次处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT a.OperCode INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;
IF OutType=2 #获取Name
THEN
SELECT a.OperName INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_GetSendRemarkByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendRemarkByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendRemarkByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendRemarkByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单备注'
BEGIN
  DECLARE OutSendRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutSendRemark
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;

  RETURN OutSendRemark;
END

fn_GetAuditStatusById

{
  "message": "\u51fd\u6570 fn_GetAuditStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(1)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检是否通过(弃用)'
BEGIN
	RETURN null;
	/*(
    SELECT `AuditStatus`  
      FROM `tb_workorderstatus` a 
     WHERE a.`WorkOrderId`=InOrderId
     AND a.`Deleted`=0
     LIMIT 1);*/
END

fn_GetTaskOrderTime

{
  "message": "\u51fd\u6570 fn_GetTaskOrderTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTaskOrderTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTaskOrderTime`(
`InOrderId` varchar(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单的首次接单时间 update 3.4.0 新增提交备案'
BEGIN
	RETURN 
	(
    SELECT DoneAt 
      FROM `tb_workflowinfo` 
     WHERE `NextStepName` IN ('提交处理结果','提交备案')
       AND WorkOrderId=InOrderId
     ORDER BY DoneAt  
     LIMIT 1);
END

fn_GetServiceOrderStatus

{
  "message": "\u51fd\u6570 fn_GetServiceOrderStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceOrderStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceOrderStatus`(
`InWorkOrderStatus` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服工单状态'
BEGIN
	RETURN CASE InWorkOrderStatus
                WHEN 0 THEN '待提交' 
                WHEN 1 THEN '下单申请中'
                WHEN 2 THEN '下单失败'
                WHEN 3 THEN '调度中'
                WHEN 4 THEN '等待工程师接单'
                WHEN 5 THEN '重新调度'
                WHEN 6 THEN '已接单'
                WHEN 7 THEN '客户审核中'
                WHEN 8 THEN '客户驳回'
                WHEN 9 THEN '已完成'
                WHEN 10 THEN '已关闭'
                WHEN 11 THEN '质检中'
                WHEN 12 THEN '质检驳回'
            END ;
END

fn_GetAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InRemarkType` smallint(1) ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取不同类型预约语录拼接'
BEGIN
DECLARE OutRemark varchar(500);

SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND IF(a.AppointSource=3,1,IFNULL(a.AppointSource,1))=InRemarkType
AND a.Deleted=0;

RETURN OutRemark;
END

fn_GetAuditCurrentPersonInfo

{
  "message": "\u51fd\u6570 fn_GetAuditCurrentPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditCurrentPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditCurrentPersonInfo`(
		InWorkOrderId char(12),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检驳回处理人信息'
BEGIN
	DECLARE OutPerson varchar(50);

    IF OutType=1 #获取Code
    THEN
    SELECT a.OperCode  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
	END IF;


    IF OutType=2 #获取Name
    THEN
	SELECT a.OperName  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
    
	END IF;

    IF OutType=3 #获取Id
    THEN
	SELECT a.OperId  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
  
    END IF;


RETURN OutPerson;
END

fn_GetServiceAuditRejectRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取质检不通过备注*/
DECLARE OutAuditRemark VARCHAR(200);

  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检不通过','质检驳回')
  AND a.WorkOrderId=InOrderId
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditRemark;

END

fn_GetLastAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因'
BEGIN

	RETURN (

	SELECT Remark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkFlowNextTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowNextTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowNextTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowNextTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取下一步骤结束时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.NextStepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetAfcReturnTypeByCode

{
  "message": "\u51fd\u6570 fn_GetAfcReturnTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcReturnTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcReturnTypeByCode`(
`InCode` char(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据金融回款类型CODE获取名称'
BEGIN

  RETURN (select name from basic_datadictionary dic1

       where dic1.deleted = 0

       and dic1.code =  InCode

       and exists (select 1 from basic_datadictionary dic2 where dic2.code = 'ReturnType' and dic2.deleted = 0 and dic2.id = dic1.ParentId)

      limit 1);

END

fn_GetLastAppointStatusCodeById

{
  "message": "\u51fd\u6570 fn_GetLastAppointStatusCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointStatusCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointStatusCodeById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最后一次异常反馈状态'
BEGIN

	RETURN (

	SELECT AppointStatus

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3)

       AND `Deleted` =0

			 and AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkflowAllSteps

{
  "message": "\u51fd\u6570 fn_GetWorkflowAllSteps \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkflowAllSteps`(InId VARCHAR(100)) RETURNS text CHARSET utf8
    DETERMINISTIC
BEGIN
   #########################根据工单Id(或appcode)获取工作流所有的步骤

	 

	 

	 
    DECLARE stepstring text;

    IF (LEFT(InId, 2) = 'WI') THEN
        -- 如果是工作流ID
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(d.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
				left join workflowruntimesteps d on c.Id=d.RuntimeItemId and d.WorkflowNodeId=a.Id and d.Deleted =0


        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND c.`TargetEntityId` = InId   
        ORDER BY a.SortOrder;
    ELSE
        -- 如果是应用程序代码 (AppCode)
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(e.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )				

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
        JOIN tb_workorderinfo d ON c.TargetEntityId = d.Id
			  left join workflowruntimesteps e on c.Id=e.RuntimeItemId and e.WorkflowNodeId=a.Id and e.Deleted =0

				
        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND d.deleted = 0
          AND d.AppCode = InId
        ORDER BY a.SortOrder;
    END IF;

		set stepstring=REPLACE(stepstring,'[至无 ]','');
    RETURN stepstring;
END

fn_GetWorkFlowPersonInforeport

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInforeport \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInforeport`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInforeport`(
		InWorkOrderId char(12),
		InStepName varchar(50),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;
IF OutType=2 #获取Name
THEN
SELECT d.`FullName` INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`FullName`   INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;

RETURN OutPerson;
END

fn_GetCustomerAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetCustomerAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCustomerAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCustomerAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取客户异常反馈记录拼接(弃用)'
BEGIN
DECLARE OutRemark varchar(500);
/*
SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND a.AppointSource = 3
AND a.Deleted=0;*/

RETURN OutRemark;
END

fn_GetServiceAuditFirstPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperName INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY StartedAt ASC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetAcceptCodeById

{
  "message": "\u51fd\u6570 fn_GetAcceptCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptCodeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取接单人Code'
BEGIN
	RETURN (
	SELECT OperCode
      FROM `tb_workflowinfo` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
       AND `NextStepName` ='提交处理结果'
     ORDER BY `StartedAt`  DESC 
     LIMIT 1
	);
END

fn_GetAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetAppointStatusByCode

{
  "message": "\u51fd\u6570 fn_GetAppointStatusByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointStatusByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointStatusByCode`(
`InCode` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取预约状态名称,预约状态(1 改约,2 等通知, 3 请求关闭, 4 客服异常反馈记录,5请求关闭(客户审核),6需再次上门,7智能改约,8 改约客户审核(易鑫)9等通知(客户审核易鑫),10请求关闭客户审核(易鑫),11跟进记录)'
BEGIN

	RETURN (

	SELECT CASE InCode WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'
                       WHEN 11 THEN '跟进记录'

           END 

        );

END

fn_GetUserRoleConcatbyId

{
  "message": "\u51fd\u6570 fn_GetUserRoleConcatbyId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetUserRoleConcatbyId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetUserRoleConcatbyId`(
`InUserInfoId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ,`InRuleGroupCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネル￧ᄏト¥ミネ¦ᄎᄎ¥ムリID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

	RETURN (

		SELECT

			a.UserRoleConcat 

		FROM

			(

			SELECT

				a.UserInfoId,

				a.RuleGroupCode,

				GROUP_CONCAT(CONCAT_WS(';',CONCAT( x.ConcatStr, ':', y.ConcatStr ),CONCAT( x.ConcatStr, ':', z.ConcatStr )) SEPARATOR ';' 

			    ) AS UserRoleConcat 

			FROM

				tb_userrulegroupinfo a

				LEFT JOIN tb_userruleinfo b ON a.Id = b.UserRuleGroupInfoId 

				AND b.Deleted = 0 

				AND b.RuleCode = 'OrderType'

				LEFT JOIN tb_userruleinfo c ON a.Id = c.UserRuleGroupInfoId 

				AND c.Deleted = 0 

				AND c.RuleCode = 'Areas'

				LEFT JOIN tb_userruleinfo d ON a.Id = d.UserRuleGroupInfoId 

				AND d.Deleted = 0 

				AND b.RuleCode = 'CustStore'

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) x ON b.Id = x.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) y ON c.Id = y.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) z ON d.Id = z.UserRuleId 

			WHERE

				a.Deleted = 0 

				AND a.RuleGroupCode <> 'AFCRule001'

			and a.RuleGroupCode = InRuleGroupCode

			AND a.UserInfoId = InUserInfoId

			GROUP BY

				a.UserInfoId,

				a.RuleGroupCode 

			) a

	    limit 1

		);

	

END

fn_GetLastFailAppointConcat

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointConcat`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取全部预约记录中最后一条'
BEGIN
	RETURN (
	SELECT CONCAT(IF(CreatedAt IS NOT NULL,CONCAT('记录提交时间:',CreatedAt,';'),''),
	IF(ApplyReason IS NULL AND FailText IS NULL,'',CONCAT('申请原因:',CONCAT(IFNULL(ApplyReason,''),IFNULL(FailText,'')),';')),
	IF(Remark IS NOT NULL,CONCAT('描述:',Remark,';'),''),
	IF(NextContactTime IS NOT NULL,CONCAT('下次联系时间:',NextContactTime,';'),''))
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
     ORDER BY `CreatedAt` DESC 
     LIMIT 1);

END

fn_GetQualityPerById

{
  "message": "\u51fd\u6570 fn_GetQualityPerById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetQualityPerById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetQualityPerById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取最新质检人id或工号或姓名'
BEGIN
	RETURN (
	SELECT  CASE InType 
                 WHEN 1 THEN OperId
                 WHEN 2 THEN OperCode
                 WHEN 3 THEN OperName
            END 
      FROM `tb_workflowinfo`   
     WHERE `WorkOrderId` =InWorkOrderId
       AND `StepName` IN ('质检','质检不通过')
       AND `Deleted` =0
     ORDER BY DoneAt DESC 
     LIMIT 1);
END

fn_GetStatusNameByCode

{
  "message": "\u51fd\u6570 fn_GetStatusNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusNameByCode`(
InCode smallint(1)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutStatusName varchar(50);
SELECT a.WorkStatusName INTO OutStatusName
FROM basic_workflowstatus a
WHERE a.WorkStatus=InCode
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusName;
END

fn_GetWorkPayStatus

{
  "message": "\u51fd\u6570 fn_GetWorkPayStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkPayStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkPayStatus`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取单据付款状态'
BEGIN
	RETURN (
	SELECT PayStatus
      FROM tb_workfeeinfo
     WHERE WorkOrderId=InOrderId
       AND Deleted=0
     ORDER BY InsertTime DESC
     LIMIT 1);

END

fn_GetWorkOrderAuditTime

{
  "message": "\u51fd\u6570 fn_GetWorkOrderAuditTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderAuditTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderAuditTime`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取首次分派开始时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT b.StartedAt INTO OutTime
FROM workflowruntimeitems a,
workflowruntimesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;

IF OutTime IS NULL
THEN
SELECT b.StartedAt INTO OutTime
FROM workflowcompleteitems a,
workflowcompletesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;
END IF;

RETURN OutTime;

END

fn_nexbatchtval

{
  "message": "\u51fd\u6570 fn_nexbatchtval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nexbatchtval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nexbatchtval`(
Dseq_no char(2) CHARSET utf8,
BatchValue INT(11)
) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value - BatchValue)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no, LPAD(LAST_INSERT_ID(), 10, 0));
        
END

fn_GetSubjectClassNameByCode

{
  "message": "\u51fd\u6570 fn_GetSubjectClassNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectClassNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectClassNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE SubjectClassName varchar(50);

SELECT Name INTO SubjectClassName
FROM tb_subjectclass
WHERE Code=InCode
AND Deleted=0;

RETURN SubjectClassName;
END

fn_GetAFCSetOutTimeById

{
  "message": "\u51fd\u6570 fn_GetAFCSetOutTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCSetOutTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCSetOutTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN
  DECLARE SetOutTime VARCHAR(50) ;
  SELECT a.DoneAt INTO SetOutTime
  FROM tb_workflowinfo a
  WHERE StepName= '出发'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.StepStatus = '1'
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN SetOutTime;
END

fn_GetAfcLastDispatcherTimeById

{
  "message": "\u51fd\u6570 fn_GetAfcLastDispatcherTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcLastDispatcherTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcLastDispatcherTimeById`( InWorkOrderId char(12) ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE DispatcherTime DateTime;

SELECT a.DoneAt INTO DispatcherTime
FROM tb_workflowinfo a
WHERE a.StepName IN ( '分配工单', '重新派单','派单')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN DispatcherTime;
END

fn_GetRequestCloseTimeById

{
  "message": "\u51fd\u6570 fn_GetRequestCloseTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestCloseTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestCloseTimeById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求关闭时间'
BEGIN
	RETURN (
		SELECT AppointTime
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetDictNameById

{
  "message": "\u51fd\u6570 fn_GetDictNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameById`(
InId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_datadictionary
WHERE Id=InId
AND Deleted=0;

RETURN OutDictName;
END

fn_GetAfcDispatcherCode

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherCode`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperCode INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;



IF OutPerson IS NULL

THEN

SELECT CreatePersonCode INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;



RETURN OutPerson;

END

fn_GetServiceAuditLastPersonNameById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonNameById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.`OperName`  INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  #AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetServiceAuditRejectReasonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectReasonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服金融_根据工单Id获取质检不通过原因*/
DECLARE AuditRejectReason VARCHAR(1000);

  SELECT GROUP_CONCAT(DoneAt,OperName,Remark ORDER BY `DoneAt` DESC SEPARATOR ';') INTO  AuditRejectReason
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId= InOrderId
  AND a.`StepStatus` = '4'
  GROUP BY WorkOrderId;

RETURN AuditRejectReason;

END

fn_GetTIMECHARByLoginName

{
  "message": "\u51fd\u6570 fn_GetTIMECHARByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTIMECHARByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTIMECHARByLoginName`(InLoginName varchar(50)) RETURNS varchar(2000) CHARSET utf8
    COMMENT '获取打卡信息工作时间字符串'
BEGIN

    declare I int default 1; #ALLTIME 数组长度,变量

    DECLARE TIMECHAR varchar(2000) DEFAULT ''; #返回值

    declare M int default 1; #ALLTIME.WORKTIME 数组长度,变量

    declare N int default 1; #ALLTIME.WORKTIME 数组长度-1,常量

    DECLARE TIMECHAR1 varchar(2000) DEFAULT ''; #ALLTIME.WORKTIME 小循环结果拼接值



    select ifnull(json_length(json_unquote(json_extract(WorkTimeJson, '$.AllTime'))), 0)

    into I

    from serviceordercenter.tb_userclockininfo

    where LoginName = InLoginName

      and Deleted = 0;



    while I > 0

        do

            SET I = I - 1;

            select ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0),

                   ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0) - 1

            into M,N

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            select

              concat(

                IFNULL(

                  case

                    when N > 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                             '—',

                             fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                             ':',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))),'-',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    when N = 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                      '—',

                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                      ':',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    end, ''), TIMECHAR)

            into TIMECHAR

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR1 = '';



            while M > 0 AND N >= 0

                do

                    set M = M - 1;

                    select

                      concat(

                        IFNULL(case

                                 when json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                                    - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                                    > N

                                 then

                                    concat(

                                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', M, ']')),1),

                                           '、')

                                 end, ''), TIMECHAR1)

                    into TIMECHAR1

                    from serviceordercenter.tb_userclockininfo

                    where LoginName = InLoginName

                      and Deleted = 0;



                END WHILE;



            select iF(TIMECHAR1 = '', '',

                      concat(TIMECHAR1, ':',

                        json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                                                 json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                     )

            into TIMECHAR1

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR = concat(ifnull(TIMECHAR, ''), ifnull(TIMECHAR1, ''));



        END WHILE;



    set TIMECHAR = replace(replace(TIMECHAR, '、:', ':'), ';', ';

');

    return TIMECHAR;

END

fn_GetWorkerInfo

{
  "message": "\u51fd\u6570 fn_GetWorkerInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkerInfo`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,
InType int 
) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取人员、账号等信息信息'
BEGIN
 
											

DECLARE OutResult VARCHAR(50) DEFAULT NULL;
 
#接单人(账号)
IF InType=10
 THEN SELECT RecordPersonCode INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;  
#接单人(姓名)							 
ELSEIF InType=11 
 THEN  SELECT RecordPersonName INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1; 
 
#接单人总工(账号) 

-- 若账号属于三方服务团队,则此处取值为账号所属三
-- 值为实际操作提交处理结 取值为实际操作提交处理结
-- 级架构的负责人账号/姓名
ELSEIF InType=12
 THEN 
 
 SELECT 
 IFNULL(E.LoginName,A.RecordPersonCode) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
#接单人总工(姓名) 
ELSEIF InType=13
 THEN
  SELECT 
 IFNULL(E.UserName,A.RecordPersonName) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
 
 
#备案人(账号) 
ELSEIF InType=20 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#备案人(姓名) 
ELSEIF InType=21 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
 
 #备案人总工(账号) 
ELSEIF InType=22
 THEN  
 SELECT  

 IFNULL(E.LoginName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) ) 

 INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
  #备案人总工(姓名) 
ELSEIF InType=23
 THEN  
 SELECT  

 IFNULL(E.UserName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) ) 

	INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
 
 
#施工人(账号) 
ELSEIF InType=30
 THEN  SELECT ServiceCode INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#施工人(姓名) 
ELSEIF InType=31 
 THEN  SELECT ServiceName INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   

 
#实际施工人(账号) 
ELSEIF InType=32
 THEN  SELECT IFNULL(WorkerCode,ServiceCode) INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#实际施工人(姓名) 
ELSEIF InType=33 
 THEN  SELECT IFNULL(WorkerName,ServiceName)  INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
              
							
							
END IF;


RETURN OutResult;
 
END

fn_GetFirstAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因(弃用)'
BEGIN
	RETURN null /*(
	SELECT Remark
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1)*/;

END

fn_GetFlowReturnReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetFlowReturnReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFlowReturnReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFlowReturnReasonByOrderId`(
InOrderId char(12)) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutReason varchar(500);
SELECT GROUP_CONCAT(a.Remark) INTO OutReason
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName RLIKE '退回'
AND a.Deleted=0;

RETURN OutReason;
END

fn_GetLastRecordTimeById

{
  "message": "\u51fd\u6570 fn_GetLastRecordTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastRecordTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastRecordTimeById`(InWorkOrderId char(12)) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '最新备案时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName IN ('提交处理结果','重新提交结果')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetWorkTagCodeById

{
  "message": "\u51fd\u6570 fn_GetWorkTagCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTagCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTagCodeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_GetServiceAuditLastTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检时间'
BEGIN
  DECLARE OutAuditTime VARCHAR(50) ;
  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetSubjectNameConcat

{
  "message": "\u51fd\u6570 fn_GetSubjectNameConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectNameConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectNameConcat`(
InWorkOrderId CHAR(12)
) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服服务科目信息(弃用)'
BEGIN
	RETURN null ;
	/*(SELECT GROUP_CONCAT(IFNULL(SubjectName,'') ORDER BY InsertTime  SEPARATOR '+')
	FROM tb_workservicesubject
	WHERE WorkOrderId=InWorkOrderId
	AND Deleted=0);*/

END

fn_dfnextval

{
  "message": "\u51fd\u6570 fn_dfnextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dfnextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dfnextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE df_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName= '质检不通过'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetVhsPayStatusById

{
  "message": "\u51fd\u6570 fn_GetVhsPayStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsPayStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsPayStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取付款状态'
BEGIN
  DECLARE OutPayStatus smallint DEFAULT 0;

  IF NOT EXISTS(SELECT 1
  FROM tb_workfeeitem a
  WHERE a.WorkOrderId=InOrderId
  AND a.PayItemStatus=0
  AND a.Deleted=0) THEN
  SET OutPayStatus=1;
  END IF;

  RETURN OutPayStatus;
END

fn_GetTeamNameByCode

{
  "message": "\u51fd\u6570 fn_GetTeamNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTeamNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTeamNameByCode`(
`InCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据团队Code获取团队名称'
BEGIN
    DECLARE OutTeamName varchar(50);
    SELECT TeamName INTO OutTeamName
    FROM basic_teaminfo
    WHERE TeamCode=InCode
    AND Deleted=0
    LIMIT 1;

	RETURN OutTeamName;
END

fn_GetCarBussinessTypeById

{
  "message": "\u51fd\u6570 fn_GetCarBussinessTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCarBussinessTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCarBussinessTypeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_formversionnumber

{
  "message": "\u51fd\u6570 fn_formversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_formversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_formversionnumber`(InformInfoCode varchar(30)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
    INTO InVersionNumber
    FROM df_forminfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_forminfo
                WHERE Deleted = 0
                GROUP BY FormCode) b
    ON a.Id = b.Id
    WHERE  FormCode = InformInfoCode;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;
     
    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;

END

fn_GetLastFailAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈失败原因'
BEGIN

	RETURN (

	SELECT FailText

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetServiceAuditAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取最新质检通过时间*/
DECLARE OutAuditTime DATETIME;

  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND `StepStatus` =1
 
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditTime;

END

fn_GetFirstAppointPersonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointPersonById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈提交人姓名/账号(弃用)'
BEGIN
/*
	IF OutType = 1 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1);
	ELSEIF OutType=2 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC  
     LIMIT 1);
	END IF;*/
    return null;
END

fn_GetAscriptionNameByCode

{
  "message": "\u51fd\u6570 fn_GetAscriptionNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionNameByCode`(
`InCode` smallint(1) ) RETURNS varchar(64) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '人员归属翻译'
BEGIN
	
	DECLARE OutTeamName varchar(50);

	SELECT 
	CASE InCode 
	WHEN 0 THEN  '外勤'
	WHEN 1 THEN  '内勤'
	WHEN 2 THEN  '优工'
	WHEN 3 THEN  '特工-外访'
	WHEN 4 THEN  '特工-催收'
	ELSE NULL
	END AS Ascription INTO OutTeamName;
	RETURN OutTeamName
	;

END

fn_GetSendPersonByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendPersonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendPersonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendPersonByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单人(弃用)'
BEGIN
  DECLARE OutSendPerson VARCHAR(50) ;
  /*
  SELECT a.OperName INTO OutSendPerson
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;*/

  RETURN OutSendPerson;
END

fn_GetStatusTypeByCode

{
  "message": "\u51fd\u6570 fn_GetStatusTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusTypeByCode`(
InOrderId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutStatusType varchar(50);

SELECT IF(a.TypeStatus=1,'(待关闭)',NULL)
  INTO OutStatusType
FROM tb_workorderstatus a
WHERE a.WorkOrderId=InOrderId
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusType;
END

fn_GetOrderTypeByCode

{
  "message": "\u51fd\u6570 fn_GetOrderTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderTypeByCode`(
InOrderType varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutOrderType varchar(50);

SELECT TypeName INTO OutOrderType
FROM basic_ordertypeinfo
WHERE TypeCode=InOrderType
AND Deleted=0;

RETURN OutOrderType;
END

GetAscriptionByLoginName

{
  "message": "\u51fd\u6570 GetAscriptionByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `GetAscriptionByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `GetAscriptionByLoginName`(INLoginName varchar(50),

                                                                     InType smallint) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据登录名获取员工归属'
BEGIN



    IF InType = 1 THEN #根据登录名获取员工归属

        RETURN (

            select case b.Ascription

                       when 0 then '外勤'

                       when 1 then '内勤'

                       when 2 then '优工'

                       when 3 then '特工-外访'

                       when 4 then '特工-催收'

                       end

            from serviceordercenter.tb_userinfo a,

                 serviceordercenter.tb_userdetail b

            where a.id = b.id

              and a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 2 THEN #获取部门

        RETURN (

            select a.DepartName

            from serviceordercenter.tb_userinfo a

            where a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 3 THEN #获取角色

        RETURN (

            select a.RoleConcat

            from serviceordercenter.tb_userinfo_serv a

            where a.deleted = 0

              and a.LoginCode = INLoginName

            limit 1

        );

    END IF;

END

fn_GetAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取接单时间'
BEGIN

DECLARE OutAcceptTime datetime;
SELECT a.StartedAt INTO OutAcceptTime
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName='提交处理结果'
AND a.Deleted=0
ORDER BY a.StartedAt DESC
LIMIT 1;

IF OutAcceptTime IS NULL
THEN 
SELECT a.InsertTime INTO OutAcceptTime
FROM tb_operatinginfo a,
tb_workorderinfo b
WHERE a.WorkOrderId=b.Id
AND b.Id=InOrderId
AND b.WorkStatus=6
AND a.Deleted=0
AND b.Deleted=0
ORDER BY a.InsertTime DESC
LIMIT 1;
END IF;

RETURN OutAcceptTime;
END

fn_GetAFCPassAuditPersonNameById

{
  "message": "\u51fd\u6570 fn_GetAFCPassAuditPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCPassAuditPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCPassAuditPersonNameById`(

`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN

  DECLARE OutAuditPerson VARCHAR(50) ;

  SELECT a.OperName INTO OutAuditPerson

  FROM tb_workflowinfo a

  WHERE StepName= '质检'

  AND a.WorkOrderId=InOrderId

  AND a.Deleted=0

  -- AND a.StepStatus = '1'

  ORDER BY StartedAt DESC

  LIMIT 1;



  RETURN OutAuditPerson;

END

fn_GetServiceSubjectNameByCode

{
  "message": "\u51fd\u6570 fn_GetServiceSubjectNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceSubjectNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceSubjectNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE ServiceSubjectName varchar(50);

SELECT Name INTO ServiceSubjectName
FROM tb_servicesubject
WHERE Code=InCode
AND Deleted=0;

RETURN ServiceSubjectName;
END

fn_GetWorkTime

{
  "message": "\u51fd\u6570 fn_GetWorkTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTime`(
`InCreateTime` datetime ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单提交时间获取工单生效时间'
BEGIN


RETURN		

date_format((case when(cast(InCreateTime as time)< '08:00:00') then convert(concat(date_format(InCreateTime, '%Y/%m/%d'), ' 08:00:00') using utf8) when(cast(InCreateTime as time)> '18:00:00') then convert(concat(date_format((InCreateTime + interval 1 day), '%Y/%m/%d'), ' 08:00:00') using utf8) else convert(InCreateTime using utf8) end), '%Y/%m/%d %H:%i:%S');

END

fn_GetWorkOrderLastDoneAt

{
  "message": "\u51fd\u6570 fn_GetWorkOrderLastDoneAt \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderLastDoneAt`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderLastDoneAt`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStep` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工作流步骤的最后一次的结束时间(弃用)'
BEGIN
RETURN null;/* (
	SELECT `DoneAt`  
      FROM `tb_workflowinfo` 
     WHERE `StepName` =InStep 
       AND `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId
     ORDER BY `DoneAt` DESC 
    LIMIT 1
);*/
END

fn_GetGoodsNameByWorkorderId

{
  "message": "\u51fd\u6570 fn_GetGoodsNameByWorkorderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetGoodsNameByWorkorderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetGoodsNameByWorkorderId`(

`InWorkOrderId` varchar(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单id获取产品名称'
BEGIN

	RETURN (

		select group_concat( DISTINCT IFNULL(tb_workgoodsinfo.SaleName,ifnull(tb_workgoodsinfo.GoodsName,tb_workgoodsinfo.CoopProductName))  separator ',')

			from  tb_workgoodsinfo 

			where  tb_workgoodsinfo .WorkOrderId= InWorkOrderId

			group by tb_workgoodsinfo.WorkOrderId

	);



END

fn_GetServiceAuditFirstTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检时间'
BEGIN
  DECLARE OutAuditTime DATETIME;
  SELECT a.StartedAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY a.StartedAt ASC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetWorkFlowStartTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowStartTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowStartTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowStartTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
#获取下单审核时间
DECLARE OutTime DATETIME;

SELECT a.`StartedAt`  INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt ASC
LIMIT 1;

RETURN OutTime;
END

fn_dataversionnumber

{
  "message": "\u51fd\u6570 fn_dataversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dataversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dataversionnumber`(InDataEntityCode varchar(50),
        InDataBaseName varchar(60)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
           INTO InVersionNumber    
    FROM df_dataentitiesinfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_dataentitiesinfo
                WHERE Deleted = 0
                GROUP BY DataEntityCode, DatabaseName) b
    ON a.Id = b.Id
    WHERE a.DataEntityCode = InDataEntityCode
    AND a.DatabaseName = InDataBaseName;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;

    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;
	
END

fn_GetNewAppointConcat

{
  "message": "\u51fd\u6570 fn_GetNewAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetNewAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetNewAppointConcat`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取预约记录(首次预约记录在前,剩余预约记录倒叙排列)'
BEGIN
	
  DECLARE OutConcat VARCHAR(1000);

  #首次预约记录
  SELECT CONCAT(
  '首次提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',首次预约备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) INTO OutConcat
  FROM tb_appointment r
  WHERE r.`WorkOrderId`=InOrderId
  AND r.`Deleted`=0
  ORDER BY r.CreatedAt ASC
  LIMIT 1;

  #其他预约记录
  SELECT CONCAT(OutConcat,IFNULL(GROUP_CONCAT(CONCAT(
  '提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) ORDER BY r.CreatedAt DESC),'')) INTO OutConcat
  FROM (
  SELECT a.Remark,a.FailText,a.CreatedAt,
  IF(a.AppCode=@AppCode,@num:=@num+1,@num:=1) AS num,
  @AppCode:=a.AppCode AS AppCode
  FROM (SELECT Remark,FailText,CreatedAt,AppCode
  FROM tb_appointment
  WHERE WorkOrderId=InOrderId
  AND `Deleted`=0
  Order by AppCode,`CreatedAt` ASC) a,
  (SELECT @AppCode:=NULL,@num:=0) s) AS r
  WHERE r.num<>1;

  RETURN OutConcat;


END

fn_GetFeeTypeById

{
  "message": "\u51fd\u6570 fn_GetFeeTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFeeTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFeeTypeById`(InId varchar(12),InFeeType varchar(50),InOrgCode varchar(10),InType smallint) RETURNS varchar(50) CHARSET utf8
    COMMENT '获取指定费用项信息'
BEGIN

IF InType = 1 THEN

RETURN (select  FeeApplyTime

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

ELSEIF InType = 2 THEN

RETURN (select  AuditStatus

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

end if;

END

fn_GetExamineTimeCust

{
  "message": "\u51fd\u6570 fn_GetExamineTimeCust \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetExamineTimeCust`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetExamineTimeCust`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服客户审核通过时间'
BEGIN
	RETURN (
	SELECT `DoneAt` 
      FROM `tb_workflowinfo` 
     WHERE `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId 
       AND `StepName` ='客户审核'
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC 
     LIMIT 1
	);
END

fn_GetWorkFlowAcceptInfonew

{
  "message": "\u51fd\u6570 fn_GetWorkFlowAcceptInfonew \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowAcceptInfonew`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowAcceptInfonew`(
InWorkOrderId char(12),OutType smallint(1)) RETURNS varchar(64) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取分派步骤最后一次处理人和是否直接接单信息(vi_workorderacceptinfo)'
BEGIN
DECLARE OutPerson varchar(50);
#DECLARE OutDirectOrderAccept SMALLINT;

IF OutType=4 #DoneAt
THEN
SELECT a.DoneAt INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName in('分派工单', '重新派单', '分派')
AND a.Deleted=0
ORDER BY `StartedAt` DESC
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_get_next_code

{
  "message": "\u51fd\u6570 fn_get_next_code \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_get_next_code`() RETURNS varchar(20) CHARSET utf8
    DETERMINISTIC
BEGIN

    DECLARE next_code VARCHAR(20);

    DECLARE max_code INT;



    -- 查找 TeamCode = 'ZR01ZR001' 的最大值(截取后四位)

    SELECT MAX(CAST(SUBSTRING(code, 10, 4) AS UNSIGNED))

    INTO max_code

    FROM basic_institutionalinfo

    WHERE TeamCode = 'ZR01ZR001';



    -- 计算下一个最大值

    SET next_code = CONCAT('ZR01ZR001', LPAD(max_code + 1, 4, '0'));



    RETURN next_code;

END

fn_GetAfcDispatcherName

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherName`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperName INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;

/*

IF OutPerson IS NULL

THEN

SELECT CreatePersonName INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;*/



RETURN OutPerson;

END

fn_GetEnterRecord

{
  "message": "\u51fd\u6570 fn_GetEnterRecord \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetEnterRecord`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetEnterRecord`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服录单提交、/审核记录(综合工单)'
BEGIN
	IF OutType=1 THEN 
	RETURN (
	SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('提交处理结果','质检不通过','重新提交结果')
       AND `WorkOrderId`= InWorkOrderId
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC
        ); 
	ELSEIF OutType=2 THEN
	RETURN (
    SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,''),ifnull(Remark,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('质检','客户审核')
       AND `WorkOrderId`= InWorkOrderId
     ORDER BY `StartedAt` DESC
        );
	END IF;
END

fn_GetCloseStatusNameByOrderId

{
  "message": "\u51fd\u6570 fn_GetCloseStatusNameByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCloseStatusNameByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCloseStatusNameByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取工单申请关闭状态名称'
BEGIN
  DECLARE OutStatusName VARCHAR(50);

  SELECT CASE a.`TypeStatus` WHEN 1 THEN '请求关闭(客户审核)' WHEN 2 THEN '请求关闭' WHEN 3 THEN '等通知'
  END INTO OutStatusName
  FROM `tb_workorderstatus` a
  WHERE a.`WorkOrderId`=InOrderId
  AND a.Deleted=0
  LIMIT 1;

	RETURN OutStatusName;
END

fn_GetConcatStrbyUserrRuleId

{
  "message": "\u51fd\u6570 fn_GetConcatStrbyUserrRuleId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetConcatStrbyUserrRuleId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetConcatStrbyUserrRuleId`(
`InUserrRuleId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(500) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネルID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

    DECLARE OutConcatStr varchar(500);



    SELECT

		GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr INTO OutConcatStr

	FROM tb_userruleiteminfo

	WHERE Deleted = 0

    and UserRuleId=InUserrRuleId

	GROUP BY UserRuleId;



RETURN OutConcatStr;

END

fn_GetSaleNameConcatById

{
  "message": "\u51fd\u6570 fn_GetSaleNameConcatById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSaleNameConcatById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSaleNameConcatById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单请求关闭信息'
BEGIN

	RETURN

	(select group_concat(concat(w1.SaleName,

                           if(w1.BrandName is null,'',concat('(',w1.BrandName)),

                           if(w1.GoodsSource is null,'',concat(',',case w1.GoodsSource when 0 then '分仓货品' when 1 then '批发货品'else '' end)),

                           if(w1.BrandName is null,'',')'))ORDER BY w1.CreatedAt DESC SEPARATOR '|'

                   )

        from tb_workgoodsinfo w1

        where w1.WorkOrderId=InOrderId

        and w1.Deleted = 0);

END

fn_GetVhsFileStatus

{
  "message": "\u51fd\u6570 fn_GetVhsFileStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsFileStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsFileStatus`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务文件归还状态'
BEGIN
	RETURN (
	SELECT a.ReceiveState
      FROM tb_vhsworkfilereceiveinfo a
     WHERE a.WorkOrderId=InOrderId
	   AND a.ReceiveType=InType
       AND a.Deleted=0
     LIMIT 1);

END

fn_GetRequestClosePersonById

{
  "message": "\u51fd\u6570 fn_GetRequestClosePersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestClosePersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestClosePersonById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求人'
BEGIN
	RETURN (
		SELECT OperatorName
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetSpecialTagByWorkId

{
  "message": "\u51fd\u6570 fn_GetSpecialTagByWorkId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSpecialTagByWorkId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSpecialTagByWorkId`(
		InWorkOrderId char(12)
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标记取最小Id一条'
BEGIN
	DECLARE OutTag varchar(20);
  
	SELECT a.Value INTO OutTag FROM tb_custcolumn a WHERE a.Deleted = 0 AND a.WorkOrderId = InWorkOrderId AND TypeName = '标记' LIMIT 1;

	RETURN IFNULL(OutTag,'');

END

fn_GetAppointTime

{
  "message": "\u51fd\u6570 fn_GetAppointTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointTime`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取首次约定时间/一线异常反馈提交时间/约定时间/4最新一条异常反馈提交时间'
BEGIN

	IF OutType IN (1,2) THEN 

	RETURN (

	SELECT CASE OutType

           WHEN 1 THEN OrderTime

           WHEN 2 THEN CreatedAt 

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

	ELSEIF OutType=3 THEN 

	RETURN (

	SELECT AppointTime

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC  

     LIMIT 1);

	ELSEIF OutType = 4 THEN 

	RETURN (

	SELECT CreatedAt

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);

	END IF;

END

fn_GetAppointById

{
  "message": "\u51fd\u6570 fn_GetAppointById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS varchar(5000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单ID获取第一条或最后一条预约记录'
BEGIN

	/* #2.5.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';') ORDER BY `CreatedAt`)

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

	); 

	END IF; */







	

	#2.8.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime))) ORDER BY `CreatedAt` DESC SEPARATOR ';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

	);  

	END IF;

END

fn_GetWorkFlowPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInfo`(InWorkOrderId char(12), InStepName varchar(50),

                                                                 OutType smallint(1)) RETURNS varchar(50) CHARSET utf8
BEGIN

    DECLARE OutPerson varchar(50);

    DECLARE InWorkStatus varchar(50);



    SELECT WorkStatus INTO InWorkStatus FROM TB_WORKORDERINFO WHERE ID = InWorkOrderId AND Deleted = 0;

    IF OutType = 1 #获取Code

    THEN

        SELECT a.OperCode

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;



    IF OutType = 2 #获取Name

    THEN

        SELECT a.OperName

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;

    IF InStepName = '当前处理人'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT a.OperCode

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT a.OperName

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

    END IF;



    IF InStepName = '接单'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT c.LoginName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.LoginName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;



        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT c.FullName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.FullName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;

        END IF;

    END IF;



    RETURN OutPerson;

END

fn_GetAscriptionByOrderId

{
  "message": "\u51fd\u6570 fn_GetAscriptionByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionByOrderId`(
`UserId` char(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT 'operId属性翻译'
BEGIN



DECLARE OutAscription varchar(20);



DECLARE Tmp varchar(36);



	SELECT UserCenterUserId INTO Tmp

	FROM ehr_userinfo WHERE UserCenterUserId = UserId LIMIT 1;



	IF Tmp IS NULL THEN 

	RETURN '';

	END IF;

	

	SELECT 

	CASE  StaffPropertyType  

	WHEN '内勤' THEN '自有人员'

	WHEN '外勤' THEN '自有人员'

	ELSE '三方人员'  END  

	INTO OutAscription

	FROM ehr_userinfo WHERE UserCenterUserId = UserId ;





RETURN OutAscription;

END

fn_GetOldldAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetOldldAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOldldAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOldldAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服(冗余老金融工单)_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检','确认工单')
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetDistrictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDistrictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDistrictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDistrictNameByCode`(
		InCode varchar(10)
) RETURNS varchar(100) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   DECLARE Result VARCHAR(100);
   
   SELECT NAME
     INTO Result
     FROM basic_district
    WHERE CODE=InCode;
   
   RETURN IFNULL(Result,'');
	
END

fn_GetReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetReasonByOrderId`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取检修类别/拆机原因'
BEGIN
DECLARE OutReason varchar(200);

SELECT DISTINCT FixPlanName INTO OutReason
FROM tb_workfixgoodsdetail
WHERE WorkOrderId=InWorkOrderId
AND Deleted=0
LIMIT 1;

RETURN OutReason;
END

fn_GetDictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameByCode`(
InCode varchar(10)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_district
WHERE Code=InCode
AND Deleted=0;

RETURN OutDictName;
END

fn_GetOrderNoByPrefix

{
  "message": "\u51fd\u6570 fn_GetOrderNoByPrefix \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderNoByPrefix`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderNoByPrefix`(
		InPrefix char(10)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据前缀获取工单编码'
BEGIN

RETURN CONCAT(InPrefix,DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y%m%d%H%i%s'),UPPER(LEFT(UUID(),7)),UPPER(LEFT(UUID(),2)));

END

fn_nextval

{
  "message": "\u51fd\u6570 fn_nextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetFirstAppointStatusById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointStatusById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈类型'
BEGIN

	RETURN (

	SELECT CASE AppointStatus WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus not in(5)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

END

fn_GetServiceAuditLastPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperCode INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetVhsLastRecentlyChangeTime

{
  "message": "\u51fd\u6570 fn_GetVhsLastRecentlyChangeTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsLastRecentlyChangeTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsLastRecentlyChangeTime`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务最新一条预约时间(弃用)'
BEGIN
	RETURN null ;/*(
	SELECT ap.CreatedAt
      FROM tb_appointment ap
     WHERE ap.WorkOrderId=InOrderId
	   AND ap.AppointStatus=1
       AND ap.Deleted=0
     ORDER BY ap.CreatedAt DESC 
     LIMIT 1);*/

END

fn_GetAppointStatusByCode

{
  "message": "\u51fd\u6570 fn_GetAppointStatusByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointStatusByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointStatusByCode`(
`InCode` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取预约状态名称,预约状态(1 改约,2 等通知, 3 请求关闭, 4 客服异常反馈记录,5请求关闭(客户审核),6需再次上门,7智能改约,8 改约客户审核(易鑫)9等通知(客户审核易鑫),10请求关闭客户审核(易鑫),11跟进记录)'
BEGIN

	RETURN (

	SELECT CASE InCode WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'
                       WHEN 11 THEN '跟进记录'

           END 

        );

END

fn_GetConcatStrbyUserrRuleId

{
  "message": "\u51fd\u6570 fn_GetConcatStrbyUserrRuleId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetConcatStrbyUserrRuleId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetConcatStrbyUserrRuleId`(
`InUserrRuleId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(500) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネルID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

    DECLARE OutConcatStr varchar(500);



    SELECT

		GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr INTO OutConcatStr

	FROM tb_userruleiteminfo

	WHERE Deleted = 0

    and UserRuleId=InUserrRuleId

	GROUP BY UserRuleId;



RETURN OutConcatStr;

END

fn_GetEnterRecord

{
  "message": "\u51fd\u6570 fn_GetEnterRecord \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetEnterRecord`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetEnterRecord`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服录单提交、/审核记录(综合工单)'
BEGIN
	IF OutType=1 THEN 
	RETURN (
	SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('提交处理结果','质检不通过','重新提交结果')
       AND `WorkOrderId`= InWorkOrderId
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC
        ); 
	ELSEIF OutType=2 THEN
	RETURN (
    SELECT GROUP_CONCAT(concat(ifnull(`OperCode`,''),ifnull(`OperName`,'') ,ifnull(`DoneAt`,''),ifnull(Remark,'') ) ORDER BY StartedAt DESC) 
      FROM `tb_workflowinfo` 
     WHERE `StepName` IN('质检','客户审核')
       AND `WorkOrderId`= InWorkOrderId
     ORDER BY `StartedAt` DESC
        );
	END IF;
END

fn_GetFlowReturnReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetFlowReturnReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFlowReturnReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFlowReturnReasonByOrderId`(
InOrderId char(12)) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutReason varchar(500);
SELECT GROUP_CONCAT(a.Remark) INTO OutReason
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName RLIKE '退回'
AND a.Deleted=0;

RETURN OutReason;
END

fn_GetGoodsNameByWorkorderId

{
  "message": "\u51fd\u6570 fn_GetGoodsNameByWorkorderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetGoodsNameByWorkorderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetGoodsNameByWorkorderId`(

`InWorkOrderId` varchar(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单id获取产品名称'
BEGIN

	RETURN (

		select group_concat( DISTINCT IFNULL(tb_workgoodsinfo.SaleName,ifnull(tb_workgoodsinfo.GoodsName,tb_workgoodsinfo.CoopProductName))  separator ',')

			from  tb_workgoodsinfo 

			where  tb_workgoodsinfo .WorkOrderId= InWorkOrderId

			group by tb_workgoodsinfo.WorkOrderId

	);



END

fn_GetAppointTime

{
  "message": "\u51fd\u6570 fn_GetAppointTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointTime`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取首次约定时间/一线异常反馈提交时间/约定时间/4最新一条异常反馈提交时间'
BEGIN

	IF OutType IN (1,2) THEN 

	RETURN (

	SELECT CASE OutType

           WHEN 1 THEN OrderTime

           WHEN 2 THEN CreatedAt 

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

	ELSEIF OutType=3 THEN 

	RETURN (

	SELECT AppointTime

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC  

     LIMIT 1);

	ELSEIF OutType = 4 THEN 

	RETURN (

	SELECT CreatedAt

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);

	END IF;

END

fn_GetAFCPassAuditPersonNameById

{
  "message": "\u51fd\u6570 fn_GetAFCPassAuditPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCPassAuditPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCPassAuditPersonNameById`(

`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN

  DECLARE OutAuditPerson VARCHAR(50) ;

  SELECT a.OperName INTO OutAuditPerson

  FROM tb_workflowinfo a

  WHERE StepName= '质检'

  AND a.WorkOrderId=InOrderId

  AND a.Deleted=0

  -- AND a.StepStatus = '1'

  ORDER BY StartedAt DESC

  LIMIT 1;



  RETURN OutAuditPerson;

END

fn_GetSaleNameConcatById

{
  "message": "\u51fd\u6570 fn_GetSaleNameConcatById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSaleNameConcatById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSaleNameConcatById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单请求关闭信息'
BEGIN

	RETURN

	(select group_concat(concat(w1.SaleName,

                           if(w1.BrandName is null,'',concat('(',w1.BrandName)),

                           if(w1.GoodsSource is null,'',concat(',',case w1.GoodsSource when 0 then '分仓货品' when 1 then '批发货品'else '' end)),

                           if(w1.BrandName is null,'',')'))ORDER BY w1.CreatedAt DESC SEPARATOR '|'

                   )

        from tb_workgoodsinfo w1

        where w1.WorkOrderId=InOrderId

        and w1.Deleted = 0);

END

fn_GetVhsLastRecentlyChangeTime

{
  "message": "\u51fd\u6570 fn_GetVhsLastRecentlyChangeTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsLastRecentlyChangeTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsLastRecentlyChangeTime`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务最新一条预约时间(弃用)'
BEGIN
	RETURN null ;/*(
	SELECT ap.CreatedAt
      FROM tb_appointment ap
     WHERE ap.WorkOrderId=InOrderId
	   AND ap.AppointStatus=1
       AND ap.Deleted=0
     ORDER BY ap.CreatedAt DESC 
     LIMIT 1);*/

END

fn_dataversionnumber

{
  "message": "\u51fd\u6570 fn_dataversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dataversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dataversionnumber`(InDataEntityCode varchar(50),
        InDataBaseName varchar(60)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
           INTO InVersionNumber    
    FROM df_dataentitiesinfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_dataentitiesinfo
                WHERE Deleted = 0
                GROUP BY DataEntityCode, DatabaseName) b
    ON a.Id = b.Id
    WHERE a.DataEntityCode = InDataEntityCode
    AND a.DatabaseName = InDataBaseName;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;

    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;
	
END

fn_GetLastAppointChangeRemarkById

{
  "message": "\u51fd\u6570 fn_GetLastAppointChangeRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointChangeRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointChangeRemarkById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈记录日志'
BEGIN

	RETURN (

	SELECT ChangeRemark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetServiceAuditLastRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检备注'
BEGIN
  DECLARE OutAuditRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditRemark;
END

fn_GetVhsPayStatusById

{
  "message": "\u51fd\u6570 fn_GetVhsPayStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsPayStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsPayStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取付款状态'
BEGIN
  DECLARE OutPayStatus smallint DEFAULT 0;

  IF NOT EXISTS(SELECT 1
  FROM tb_workfeeitem a
  WHERE a.WorkOrderId=InOrderId
  AND a.PayItemStatus=0
  AND a.Deleted=0) THEN
  SET OutPayStatus=1;
  END IF;

  RETURN OutPayStatus;
END

fn_GetAfcLastDispatcherTimeById

{
  "message": "\u51fd\u6570 fn_GetAfcLastDispatcherTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcLastDispatcherTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcLastDispatcherTimeById`( InWorkOrderId char(12) ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE DispatcherTime DateTime;

SELECT a.DoneAt INTO DispatcherTime
FROM tb_workflowinfo a
WHERE a.StepName IN ( '分配工单', '重新派单','派单')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN DispatcherTime;
END

fn_GetWorkPayStatus

{
  "message": "\u51fd\u6570 fn_GetWorkPayStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkPayStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkPayStatus`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取单据付款状态'
BEGIN
	RETURN (
	SELECT PayStatus
      FROM tb_workfeeinfo
     WHERE WorkOrderId=InOrderId
       AND Deleted=0
     ORDER BY InsertTime DESC
     LIMIT 1);

END

fn_GetFirstAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因(弃用)'
BEGIN
	RETURN null /*(
	SELECT Remark
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1)*/;

END

fn_GetServiceAuditFirstTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检时间'
BEGIN
  DECLARE OutAuditTime DATETIME;
  SELECT a.StartedAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY a.StartedAt ASC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetAscriptionByOrderId

{
  "message": "\u51fd\u6570 fn_GetAscriptionByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionByOrderId`(
`UserId` char(36) charset utf8 collate utf8_general_ci ) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT 'operId属性翻译'
BEGIN



DECLARE OutAscription varchar(20);



DECLARE Tmp varchar(36);



	SELECT UserCenterUserId INTO Tmp

	FROM ehr_userinfo WHERE UserCenterUserId = UserId LIMIT 1;



	IF Tmp IS NULL THEN 

	RETURN '';

	END IF;

	

	SELECT 

	CASE  StaffPropertyType  

	WHEN '内勤' THEN '自有人员'

	WHEN '外勤' THEN '自有人员'

	ELSE '三方人员'  END  

	INTO OutAscription

	FROM ehr_userinfo WHERE UserCenterUserId = UserId ;





RETURN OutAscription;

END

fn_GetWorkerInfo

{
  "message": "\u51fd\u6570 fn_GetWorkerInfo \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkerInfo`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,
InType int 
) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取人员、账号等信息信息'
BEGIN
 
											

DECLARE OutResult VARCHAR(50) DEFAULT NULL;
 
#接单人(账号)
IF InType=10
 THEN SELECT RecordPersonCode INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;  
#接单人(姓名)							 
ELSEIF InType=11 
 THEN  SELECT RecordPersonName INTO  OutResult FROM     tb_recordinfo  WHERE WorkOrderId= InOrderId  LIMIT 1; 
 
#接单人总工(账号) 

-- 若账号属于三方服务团队,则此处取值为账号所属三
-- 值为实际操作提交处理结 取值为实际操作提交处理结
-- 级架构的负责人账号/姓名
ELSEIF InType=12
 THEN 
 
 SELECT 
 IFNULL(E.LoginName,A.RecordPersonCode) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
#接单人总工(姓名) 
ELSEIF InType=13
 THEN
  SELECT 
 IFNULL(E.UserName,A.RecordPersonName) INTO OutResult
 FROM     tb_recordinfo  A
 JOIN tb_userinfo B ON A.RecordPersonCode=B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
 WHERE A.WorkOrderId= InOrderId LIMIT 1;  
 
 
 
 
#备案人(账号) 
ELSEIF InType=20 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#备案人(姓名) 
ELSEIF InType=21 
 THEN  SELECT cast(json_unquote(json_unquote(json_extract(BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) INTO  OutResult FROM     tb_workbussinessjsoninfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
 
 #备案人总工(账号) 
ELSEIF InType=22
 THEN  
 SELECT  

 IFNULL(E.LoginName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) ) 

 INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
  #备案人总工(姓名) 
ELSEIF InType=23
 THEN  
 SELECT  

 IFNULL(E.UserName ,cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonName'))) as char) ) 

	INTO OutResult
	FROM tb_workbussinessjsoninfo  A
	JOIN tb_userinfo B ON cast(json_unquote(json_unquote(json_extract(A.BussinessJson,'$.ActualRecordPersonInfo.ActualRecordPersonCode'))) as char) =B.LoginName AND B.Deleted=0
 JOIN tb_userdetail C On B.Id=C.Id  
 Left JOIN basic_institutionalinfo D On C.AffiliatedInstitution=D.code AND D.OrgCode=1001  and D.deleted=0  and D.parentid=(select id from basic_institutionalinfo where name='三方服务团队')
 Left JOIN tb_userinfo E On D.LeaderLoginName=E.LoginName AND E.Deleted=0
	WHERE A.WorkOrderId= InOrderId  LIMIT 1;   
 
 
 
 
#施工人(账号) 
ELSEIF InType=30
 THEN  SELECT ServiceCode INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#施工人(姓名) 
ELSEIF InType=31 
 THEN  SELECT ServiceName INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   

 
#实际施工人(账号) 
ELSEIF InType=32
 THEN  SELECT IFNULL(WorkerCode,ServiceCode) INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
#实际施工人(姓名) 
ELSEIF InType=33 
 THEN  SELECT IFNULL(WorkerName,ServiceName)  INTO  OutResult FROM     tb_workserviceinfo  WHERE WorkOrderId= InOrderId  LIMIT 1;   
              
							
							
END IF;


RETURN OutResult;
 
END

fn_GetServiceAuditLastPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperCode INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetNewAppointConcat

{
  "message": "\u51fd\u6570 fn_GetNewAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetNewAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetNewAppointConcat`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取预约记录(首次预约记录在前,剩余预约记录倒叙排列)'
BEGIN
	
  DECLARE OutConcat VARCHAR(1000);

  #首次预约记录
  SELECT CONCAT(
  '首次提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',首次预约备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) INTO OutConcat
  FROM tb_appointment r
  WHERE r.`WorkOrderId`=InOrderId
  AND r.`Deleted`=0
  ORDER BY r.CreatedAt ASC
  LIMIT 1;

  #其他预约记录
  SELECT CONCAT(OutConcat,IFNULL(GROUP_CONCAT(CONCAT(
  '提交时间:',r.CreatedAt,
  IF(
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')) IS NULL,';',
  CONCAT(',备注:',
  CONCAT(IFNULL(r.Remark,''),IFNULL(r.FailText,'')),';'))) ORDER BY r.CreatedAt DESC),'')) INTO OutConcat
  FROM (
  SELECT a.Remark,a.FailText,a.CreatedAt,
  IF(a.AppCode=@AppCode,@num:=@num+1,@num:=1) AS num,
  @AppCode:=a.AppCode AS AppCode
  FROM (SELECT Remark,FailText,CreatedAt,AppCode
  FROM tb_appointment
  WHERE WorkOrderId=InOrderId
  AND `Deleted`=0
  Order by AppCode,`CreatedAt` ASC) a,
  (SELECT @AppCode:=NULL,@num:=0) s) AS r
  WHERE r.num<>1;

  RETURN OutConcat;


END

fn_GetServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName= '质检不通过'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetLastFailAppointConcat

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointConcat`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(2000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取全部预约记录中最后一条'
BEGIN
	RETURN (
	SELECT CONCAT(IF(CreatedAt IS NOT NULL,CONCAT('记录提交时间:',CreatedAt,';'),''),
	IF(ApplyReason IS NULL AND FailText IS NULL,'',CONCAT('申请原因:',CONCAT(IFNULL(ApplyReason,''),IFNULL(FailText,'')),';')),
	IF(Remark IS NOT NULL,CONCAT('描述:',Remark,';'),''),
	IF(NextContactTime IS NOT NULL,CONCAT('下次联系时间:',NextContactTime,';'),''))
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
     ORDER BY `CreatedAt` DESC 
     LIMIT 1);

END

fn_GetFirstAppointStatusById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointStatusById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈类型'
BEGIN

	RETURN (

	SELECT CASE AppointStatus WHEN 0 THEN ''

                       WHEN 1 THEN '改约'

                       WHEN 2 THEN '等通知'

                       WHEN 3 THEN '请求关闭' 

                       WHEN 4 THEN '客服异常反馈记录'

        			   WHEN 5 THEN '请求关闭(客户审核)'

        			   WHEN 6 THEN '需再次上门'

                       WHEN 7 THEN '智能改约'

                       WHEN 8 THEN '改约'

                       WHEN 9 THEN '等通知'

                       WHEN 10 THEN '请求关闭'

           END 

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus not in(5)

     ORDER BY `CreatedAt` ASC 

     LIMIT 1);

END

fn_GetFeeTypeById

{
  "message": "\u51fd\u6570 fn_GetFeeTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFeeTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFeeTypeById`(InId varchar(12),InFeeType varchar(50),InOrgCode varchar(10),InType smallint) RETURNS varchar(50) CHARSET utf8
    COMMENT '获取指定费用项信息'
BEGIN

IF InType = 1 THEN

RETURN (select  FeeApplyTime

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

ELSEIF InType = 2 THEN

RETURN (select  AuditStatus

                     from serviceordercenter.tb_feeapplicationinfo fc,

                          serviceordercenter.tb_feeiteminfo fi

                     where fi.Deleted = 0

                       and fi.OrgCode = InOrgCode

                       and fi.FeeItemName = InFeeType

                       and fc.FeeItemId = fi.Id

                       and fc.deleted = 0

                       AND FC.TargetId = InId

                       order by fc.FeeApplyTime desc

                       limit 1);

end if;

END

fn_GetAuditCurrentPersonInfo

{
  "message": "\u51fd\u6570 fn_GetAuditCurrentPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditCurrentPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditCurrentPersonInfo`(
		InWorkOrderId char(12),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检驳回处理人信息'
BEGIN
	DECLARE OutPerson varchar(50);

    IF OutType=1 #获取Code
    THEN
    SELECT a.OperCode  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
	END IF;


    IF OutType=2 #获取Name
    THEN
	SELECT a.OperName  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
    
	END IF;

    IF OutType=3 #获取Id
    THEN
	SELECT a.OperId  INTO OutPerson
      FROM tb_operatinginfo a
     WHERE a.WorkOrderId=InWorkOrderId
       AND a.Deleted=0
    ORDER BY `InsertTime` ASC LIMIT 1;
  
    END IF;


RETURN OutPerson;
END

fn_GetCarBussinessTypeById

{
  "message": "\u51fd\u6570 fn_GetCarBussinessTypeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCarBussinessTypeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCarBussinessTypeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_GetServiceAuditAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取最新质检通过时间*/
DECLARE OutAuditTime DATETIME;

  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND `StepStatus` =1
 
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditTime;

END

fn_GetWorkTagCodeById

{
  "message": "\u51fd\u6570 fn_GetWorkTagCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTagCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTagCodeById`(
		InWorkOrderId char(12),
		OutType SMALLINT
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标签信息Code'
BEGIN

	RETURN
	(SELECT IF(OutType=1,s.TypeCode,s.TypeName)
	FROM tb_worktaginfo s
	WHERE s.WorkOrderId=InWorkOrderId
  AND s.TypeCode IN ('CYC','SYC')
	AND Deleted=0
	LIMIT 1);

END

fn_GetAuditStatusById

{
  "message": "\u51fd\u6570 fn_GetAuditStatusById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAuditStatusById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAuditStatusById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS smallint(1)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取质检是否通过(弃用)'
BEGIN
	RETURN null;
	/*(
    SELECT `AuditStatus`  
      FROM `tb_workorderstatus` a 
     WHERE a.`WorkOrderId`=InOrderId
     AND a.`Deleted`=0
     LIMIT 1);*/
END

fn_GetStatusNameByCode

{
  "message": "\u51fd\u6570 fn_GetStatusNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusNameByCode`(
InCode smallint(1)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
DECLARE OutStatusName varchar(50);
SELECT a.WorkStatusName INTO OutStatusName
FROM basic_workflowstatus a
WHERE a.WorkStatus=InCode
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusName;
END

fn_GetOrderNoByPrefix

{
  "message": "\u51fd\u6570 fn_GetOrderNoByPrefix \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderNoByPrefix`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderNoByPrefix`(
		InPrefix char(10)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据前缀获取工单编码'
BEGIN

RETURN CONCAT(InPrefix,DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y%m%d%H%i%s'),UPPER(LEFT(UUID(),7)),UPPER(LEFT(UUID(),2)));

END

fn_GetTIMECHARByLoginName

{
  "message": "\u51fd\u6570 fn_GetTIMECHARByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTIMECHARByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTIMECHARByLoginName`(InLoginName varchar(50)) RETURNS varchar(2000) CHARSET utf8
    COMMENT '获取打卡信息工作时间字符串'
BEGIN

    declare I int default 1; #ALLTIME 数组长度,变量

    DECLARE TIMECHAR varchar(2000) DEFAULT ''; #返回值

    declare M int default 1; #ALLTIME.WORKTIME 数组长度,变量

    declare N int default 1; #ALLTIME.WORKTIME 数组长度-1,常量

    DECLARE TIMECHAR1 varchar(2000) DEFAULT ''; #ALLTIME.WORKTIME 小循环结果拼接值



    select ifnull(json_length(json_unquote(json_extract(WorkTimeJson, '$.AllTime'))), 0)

    into I

    from serviceordercenter.tb_userclockininfo

    where LoginName = InLoginName

      and Deleted = 0;



    while I > 0

        do

            SET I = I - 1;

            select ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0),

                   ifnull(json_length(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),

                                                   concat('$[', I, '].WorkWeek'))), 0) - 1

            into M,N

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            select

              concat(

                IFNULL(

                  case

                    when N > 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                             '—',

                             fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                             ':',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))),'-',

                             json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    when N = 0

                     and json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                       - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                       = N

                    then

                      concat(fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]')), 1),

                      '—',

                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat(concat('$[', I, ']'), '.WorkWeek[', N, ']')), 1),

                      ':',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                      json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                    end, ''), TIMECHAR)

            into TIMECHAR

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR1 = '';



            while M > 0 AND N >= 0

                do

                    set M = M - 1;

                    select

                      concat(

                        IFNULL(case

                                 when json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', N, ']'))

                                    - json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[0]'))

                                    > N

                                 then

                                    concat(

                                      fn_GetWeekDayByNum(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].WorkWeek[', M, ']')),1),

                                           '、')

                                 end, ''), TIMECHAR1)

                    into TIMECHAR1

                    from serviceordercenter.tb_userclockininfo

                    where LoginName = InLoginName

                      and Deleted = 0;



                END WHILE;



            select iF(TIMECHAR1 = '', '',

                      concat(TIMECHAR1, ':',

                        json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].StartWorkDate'))), '-',

                                                 json_unquote(json_extract(json_unquote(json_extract(WorkTimeJson, '$.AllTime')),concat('$[', I, '].EndWorkDate'))), ';')

                     )

            into TIMECHAR1

            from serviceordercenter.tb_userclockininfo

            where LoginName = InLoginName

              and Deleted = 0;



            set TIMECHAR = concat(ifnull(TIMECHAR, ''), ifnull(TIMECHAR1, ''));



        END WHILE;



    set TIMECHAR = replace(replace(TIMECHAR, '、:', ':'), ';', ';

');

    return TIMECHAR;

END

fn_GetStatusTypeByCode

{
  "message": "\u51fd\u6570 fn_GetStatusTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetStatusTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetStatusTypeByCode`(
InOrderId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutStatusType varchar(50);

SELECT IF(a.TypeStatus=1,'(待关闭)',NULL)
  INTO OutStatusType
FROM tb_workorderstatus a
WHERE a.WorkOrderId=InOrderId
AND a.Deleted=0
LIMIT 1;

RETURN OutStatusType;
END

fn_GetAscriptionNameByCode

{
  "message": "\u51fd\u6570 fn_GetAscriptionNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAscriptionNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAscriptionNameByCode`(
`InCode` smallint(1) ) RETURNS varchar(64) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '人员归属翻译'
BEGIN
	
	DECLARE OutTeamName varchar(50);

	SELECT 
	CASE InCode 
	WHEN 0 THEN  '外勤'
	WHEN 1 THEN  '内勤'
	WHEN 2 THEN  '优工'
	WHEN 3 THEN  '特工-外访'
	WHEN 4 THEN  '特工-催收'
	ELSE NULL
	END AS Ascription INTO OutTeamName;
	RETURN OutTeamName
	;

END

fn_GetServiceAuditLastPersonNameById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastPersonNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastPersonNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastPersonNameById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.`OperName`  INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  #AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetAssignorById

{
  "message": "\u51fd\u6570 fn_GetAssignorById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAssignorById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAssignorById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次分派人姓名账号'
BEGIN
  DECLARE Assignor VARCHAR(50) ;
  
  IF OutType=1 #获取Code
  THEN
	
  SELECT a.OperCode INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;

  IF OutType=2 #获取Name
  THEN 	
  
  SELECT a.OperName INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
  
  IF OutType=3 #获取Id
  THEN 	
  
  SELECT a.OperId INTO Assignor
  FROM tb_workflowinfo a
  WHERE StepName IN  ('分派','分派工单','调度工单','重新派单')
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.`StepStatus` =1
  ORDER BY StartedAt DESC
  LIMIT 1;
  END IF;
	

  RETURN Assignor;
END

fn_GetServiceSubjectNameByCode

{
  "message": "\u51fd\u6570 fn_GetServiceSubjectNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceSubjectNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceSubjectNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE ServiceSubjectName varchar(50);

SELECT Name INTO ServiceSubjectName
FROM tb_servicesubject
WHERE Code=InCode
AND Deleted=0;

RETURN ServiceSubjectName;
END

fn_GetRequestCloseTimeById

{
  "message": "\u51fd\u6570 fn_GetRequestCloseTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestCloseTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestCloseTimeById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求关闭时间'
BEGIN
	RETURN (
		SELECT AppointTime
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetWorkOrderAuditTime

{
  "message": "\u51fd\u6570 fn_GetWorkOrderAuditTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderAuditTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderAuditTime`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取首次分派开始时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT b.StartedAt INTO OutTime
FROM workflowruntimeitems a,
workflowruntimesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;

IF OutTime IS NULL
THEN
SELECT b.StartedAt INTO OutTime
FROM workflowcompleteitems a,
workflowcompletesteps b
WHERE a.Id=b.RuntimeItemId
AND a.TargetEntityId=InWorkOrderId
AND b.Name IN ('分派','分派工单','分单','分配工单')
AND a.Deleted=0
AND b.Deleted=0
ORDER BY b.StartedAt ASC
LIMIT 1;
END IF;

RETURN OutTime;

END

fn_GetExamineTimeCust

{
  "message": "\u51fd\u6570 fn_GetExamineTimeCust \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetExamineTimeCust`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetExamineTimeCust`(
`InWorkOrderId` varchar(20) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服客户审核通过时间'
BEGIN
	RETURN (
	SELECT `DoneAt` 
      FROM `tb_workflowinfo` 
     WHERE `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId 
       AND `StepName` ='客户审核'
       AND `StepStatus` =1
     ORDER BY `StartedAt` DESC 
     LIMIT 1
	);
END

GetAscriptionByLoginName

{
  "message": "\u51fd\u6570 GetAscriptionByLoginName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `GetAscriptionByLoginName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `GetAscriptionByLoginName`(INLoginName varchar(50),

                                                                     InType smallint) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据登录名获取员工归属'
BEGIN



    IF InType = 1 THEN #根据登录名获取员工归属

        RETURN (

            select case b.Ascription

                       when 0 then '外勤'

                       when 1 then '内勤'

                       when 2 then '优工'

                       when 3 then '特工-外访'

                       when 4 then '特工-催收'

                       end

            from serviceordercenter.tb_userinfo a,

                 serviceordercenter.tb_userdetail b

            where a.id = b.id

              and a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 2 THEN #获取部门

        RETURN (

            select a.DepartName

            from serviceordercenter.tb_userinfo a

            where a.deleted = 0

              and a.loginname = INLoginName

            limit 1

        );

    END IF;

    IF InType = 3 THEN #获取角色

        RETURN (

            select a.RoleConcat

            from serviceordercenter.tb_userinfo_serv a

            where a.deleted = 0

              and a.LoginCode = INLoginName

            limit 1

        );

    END IF;

END

fn_get_next_code

{
  "message": "\u51fd\u6570 fn_get_next_code \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_get_next_code`() RETURNS varchar(20) CHARSET utf8
    DETERMINISTIC
BEGIN

    DECLARE next_code VARCHAR(20);

    DECLARE max_code INT;



    -- 查找 TeamCode = 'ZR01ZR001' 的最大值(截取后四位)

    SELECT MAX(CAST(SUBSTRING(code, 10, 4) AS UNSIGNED))

    INTO max_code

    FROM basic_institutionalinfo

    WHERE TeamCode = 'ZR01ZR001';



    -- 计算下一个最大值

    SET next_code = CONCAT('ZR01ZR001', LPAD(max_code + 1, 4, '0'));



    RETURN next_code;

END

fn_GetWorkFlowNextTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowNextTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowNextTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowNextTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取下一步骤结束时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.NextStepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetOldldAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetOldldAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOldldAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOldldAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服(冗余老金融工单)_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检','确认工单')
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetOrderReceivingStatus

{
  "message": "\u51fd\u6570 fn_GetOrderReceivingStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderReceivingStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderReceivingStatus`(
`InPauseBeginTime` datetime ,`InPauseEndTime` datetime ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据暂停接单时间段获取接单状态'
BEGIN

IF(InPauseBeginTime IS NULL)
THEN RETURN '正常接单';
END IF;

IF( InPauseBeginTime < NOW() )
THEN

 IF (InPauseEndTime IS NULL)
 THEN RETURN '暂停接单';
 END IF;
 
 IF (InPauseEndTime > NOW() )
 THEN RETURN CONCAT('暂停接单(截止于',InPauseEndTime,')');
 END IF;

END IF;

IF( InPauseBeginTime > NOW() )
THEN RETURN CONCAT('正常接单接单(截止于',InPauseBeginTime,')');
END IF;

IF( InPauseEndTime < NOW() )
THEN RETURN '正常接单';
END IF;
return null;
END

fn_GetAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InRemarkType` smallint(1) ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取不同类型预约语录拼接'
BEGIN
DECLARE OutRemark varchar(500);

SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND IF(a.AppointSource=3,1,IFNULL(a.AppointSource,1))=InRemarkType
AND a.Deleted=0;

RETURN OutRemark;
END

fn_GetWorkFlowStartTimeInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowStartTimeInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowStartTimeInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowStartTimeInfo`(
		InWorkOrderId char(12),
		InStepName varchar(50)
) RETURNS datetime
    SQL SECURITY INVOKER
BEGIN
#获取下单审核时间
DECLARE OutTime DATETIME;

SELECT a.`StartedAt`  INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName=InStepName
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt ASC
LIMIT 1;

RETURN OutTime;
END

fn_GetSendRemarkByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendRemarkByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendRemarkByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendRemarkByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单备注'
BEGIN
  DECLARE OutSendRemark VARCHAR(200) ;
  SELECT a.Remark INTO OutSendRemark
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;

  RETURN OutSendRemark;
END

fn_GetAcceptTimeById

{
  "message": "\u51fd\u6570 fn_GetAcceptTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取接单时间'
BEGIN

DECLARE OutAcceptTime datetime;
SELECT a.StartedAt INTO OutAcceptTime
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InOrderId
AND a.StepName='提交处理结果'
AND a.Deleted=0
ORDER BY a.StartedAt DESC
LIMIT 1;

IF OutAcceptTime IS NULL
THEN 
SELECT a.InsertTime INTO OutAcceptTime
FROM tb_operatinginfo a,
tb_workorderinfo b
WHERE a.WorkOrderId=b.Id
AND b.Id=InOrderId
AND b.WorkStatus=6
AND a.Deleted=0
AND b.Deleted=0
ORDER BY a.InsertTime DESC
LIMIT 1;
END IF;

RETURN OutAcceptTime;
END

fn_GetServiceOrderStatus

{
  "message": "\u51fd\u6570 fn_GetServiceOrderStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceOrderStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceOrderStatus`(
`InWorkOrderStatus` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服工单状态'
BEGIN
	RETURN CASE InWorkOrderStatus
                WHEN 0 THEN '待提交' 
                WHEN 1 THEN '下单申请中'
                WHEN 2 THEN '下单失败'
                WHEN 3 THEN '调度中'
                WHEN 4 THEN '等待工程师接单'
                WHEN 5 THEN '重新调度'
                WHEN 6 THEN '已接单'
                WHEN 7 THEN '客户审核中'
                WHEN 8 THEN '客户驳回'
                WHEN 9 THEN '已完成'
                WHEN 10 THEN '已关闭'
                WHEN 11 THEN '质检中'
                WHEN 12 THEN '质检驳回'
            END ;
END

fn_GetLastFailAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastFailAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastFailAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastFailAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈失败原因'
BEGIN

	RETURN (

	SELECT FailText

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_GetWorkflowAllSteps

{
  "message": "\u51fd\u6570 fn_GetWorkflowAllSteps \u5728\u76ee\u6807\u6570\u636e\u5e93\u4e2d\u4e0d\u5b58\u5728",
  "type": "missing_in_target"
}

变更SQL:

CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkflowAllSteps`(InId VARCHAR(100)) RETURNS text CHARSET utf8
    DETERMINISTIC
BEGIN
   #########################根据工单Id(或appcode)获取工作流所有的步骤

	 

	 

	 
    DECLARE stepstring text;

    IF (LEFT(InId, 2) = 'WI') THEN
        -- 如果是工作流ID
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(d.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(d.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
				left join workflowruntimesteps d on c.Id=d.RuntimeItemId and d.WorkflowNodeId=a.Id and d.Deleted =0


        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND c.`TargetEntityId` = InId   
        ORDER BY a.SortOrder;
    ELSE
        -- 如果是应用程序代码 (AppCode)
        SELECT concat('#',b.Name,'\n',GROUP_CONCAT(concat(a.SortOrder,a.name,'[',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),''),'至',ifnull(DATE_FORMAT(e.StartedAt,'%Y-%m-%d %H:%i:%s'),'无'),' ',ifnull(e.`Status`,''),']',

				(select ifnull(GROUP_CONCAT(concat('\n  -- ','条件说明:',Subject,' 处理状态:',HandlingStatus,' 脚本:',replace(Scripts,'\n',''),' 下一步骤:',(select concat(SortOrder,name) from workflownodes where id=x.NextWorkflowNodeId and deleted=0 )) order by x.SortOrder),'') from workflownodestepconditions x where WorkflowNodeId=a.Id and deleted=0   )				

				)  ORDER BY a.SortOrder  SEPARATOR '\n')) INTO stepstring
        FROM `workflownodes` a
        JOIN workflowitems b ON a.WorkflowItemId = b.Id 
        JOIN workflowruntimeitems c ON c.WorkflowItemId = b.Id 
        JOIN tb_workorderinfo d ON c.TargetEntityId = d.Id
			  left join workflowruntimesteps e on c.Id=e.RuntimeItemId and e.WorkflowNodeId=a.Id and e.Deleted =0

				
        WHERE a.deleted = 0 
          AND b.deleted = 0
          AND c.deleted = 0
          AND d.deleted = 0
          AND d.AppCode = InId
        ORDER BY a.SortOrder;
    END IF;

		set stepstring=REPLACE(stepstring,'[至无 ]','');
    RETURN stepstring;
END

fn_GetReasonByOrderId

{
  "message": "\u51fd\u6570 fn_GetReasonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetReasonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetReasonByOrderId`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取检修类别/拆机原因'
BEGIN
DECLARE OutReason varchar(200);

SELECT DISTINCT FixPlanName INTO OutReason
FROM tb_workfixgoodsdetail
WHERE WorkOrderId=InWorkOrderId
AND Deleted=0
LIMIT 1;

RETURN OutReason;
END

fn_GetLastRecordTimeById

{
  "message": "\u51fd\u6570 fn_GetLastRecordTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastRecordTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastRecordTimeById`(InWorkOrderId char(12)) RETURNS datetime
    SQL SECURITY INVOKER
    COMMENT '最新备案时间'
BEGIN
DECLARE OutTime DATETIME;

SELECT a.DoneAt INTO OutTime
FROM tb_workflowinfo a
WHERE a.StepName IN ('提交处理结果','重新提交结果')
AND a.WorkOrderId=InWorkOrderId
AND a.Deleted=0
ORDER BY a.DoneAt DESC
LIMIT 1;

RETURN OutTime;
END

fn_GetWorkFlowAcceptInfonew

{
  "message": "\u51fd\u6570 fn_GetWorkFlowAcceptInfonew \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowAcceptInfonew`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowAcceptInfonew`(
InWorkOrderId char(12),OutType smallint(1)) RETURNS varchar(64) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取分派步骤最后一次处理人和是否直接接单信息(vi_workorderacceptinfo)'
BEGIN
DECLARE OutPerson varchar(50);
#DECLARE OutDirectOrderAccept SMALLINT;

IF OutType=4 #DoneAt
THEN
SELECT a.DoneAt INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName in('分派工单', '重新派单', '分派')
AND a.Deleted=0
ORDER BY `StartedAt` DESC
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_GetWorkFlowPersonInforeport

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInforeport \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInforeport`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInforeport`(
		InWorkOrderId char(12),
		InStepName varchar(50),
		OutType smallint(1)
) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`LoginName`  INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;
IF OutType=2 #获取Name
THEN
SELECT d.`FullName` INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowcompleteitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowcompletesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowcompleteactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
		IF OutPerson is null THEN
		SELECT d.`FullName`   INTO OutPerson
        	  FROM `tb_workorderinfo` a 
      	      JOIN `workflowruntimeitems` b
                ON a.`Id` =b.`TargetEntityId` 
               AND b.`Deleted` =0
               AND b.`Status` ='ACCEPTED'
          	  JOIN `workflowruntimesteps` c 
                ON c.`RuntimeItemId` =b.`Id` 
	      	   AND c.`Status` ='ACCEPTED'
              JOIN `workflowruntimeactors` d 
                ON d.`RuntimeStepId` =c.`Id` 
               AND b.`Deleted` =0
	     	 WHERE a.`Id` =InWorkOrderId
               AND c.`Name` like InStepName
			 ORDER BY c.`DoneAt` DESC LIMIT 1 ;
        END IF ;
END IF;

RETURN OutPerson;
END

fn_GetServiceAuditLastTimeById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditLastTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditLastTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditLastTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取最后一次质检时间'
BEGIN
  DECLARE OutAuditTime VARCHAR(50) ;
  SELECT a.DoneAt INTO OutAuditTime
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt DESC
  LIMIT 1;

  RETURN OutAuditTime;
END

fn_GetAfcReturnTypeByCode

{
  "message": "\u51fd\u6570 fn_GetAfcReturnTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcReturnTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcReturnTypeByCode`(
`InCode` char(20) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据金融回款类型CODE获取名称'
BEGIN

  RETURN (select name from basic_datadictionary dic1

       where dic1.deleted = 0

       and dic1.code =  InCode

       and exists (select 1 from basic_datadictionary dic2 where dic2.code = 'ReturnType' and dic2.deleted = 0 and dic2.id = dic1.ParentId)

      limit 1);

END

fn_GetDictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameByCode`(
InCode varchar(10)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_district
WHERE Code=InCode
AND Deleted=0;

RETURN OutDictName;
END

fn_GetWorkTime

{
  "message": "\u51fd\u6570 fn_GetWorkTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkTime`(
`InCreateTime` datetime ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单提交时间获取工单生效时间'
BEGIN


RETURN		

date_format((case when(cast(InCreateTime as time)< '08:00:00') then convert(concat(date_format(InCreateTime, '%Y/%m/%d'), ' 08:00:00') using utf8) when(cast(InCreateTime as time)> '18:00:00') then convert(concat(date_format((InCreateTime + interval 1 day), '%Y/%m/%d'), ' 08:00:00') using utf8) else convert(InCreateTime using utf8) end), '%Y/%m/%d %H:%i:%S');

END

fn_GetAcceptCodeById

{
  "message": "\u51fd\u6570 fn_GetAcceptCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAcceptCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAcceptCodeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取接单人Code'
BEGIN
	RETURN (
	SELECT OperCode
      FROM `tb_workflowinfo` 
     WHERE `WorkOrderId` =InOrderId
       AND `Deleted` =0
       AND `NextStepName` ='提交处理结果'
     ORDER BY `StartedAt`  DESC 
     LIMIT 1
	);
END

fn_GetDistrictNameByCode

{
  "message": "\u51fd\u6570 fn_GetDistrictNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDistrictNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDistrictNameByCode`(
		InCode varchar(10)
) RETURNS varchar(100) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   DECLARE Result VARCHAR(100);
   
   SELECT NAME
     INTO Result
     FROM basic_district
    WHERE CODE=InCode;
   
   RETURN IFNULL(Result,'');
	
END

fn_GetTaskOrderTime

{
  "message": "\u51fd\u6570 fn_GetTaskOrderTime \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTaskOrderTime`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTaskOrderTime`(
`InOrderId` varchar(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工单的首次接单时间 update 3.4.0 新增提交备案'
BEGIN
	RETURN 
	(
    SELECT DoneAt 
      FROM `tb_workflowinfo` 
     WHERE `NextStepName` IN ('提交处理结果','提交备案')
       AND WorkOrderId=InOrderId
     ORDER BY DoneAt  
     LIMIT 1);
END

fn_GetServiceAuditRejectReasonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectReasonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服金融_根据工单Id获取质检不通过原因*/
DECLARE AuditRejectReason VARCHAR(1000);

  SELECT GROUP_CONCAT(DoneAt,OperName,Remark ORDER BY `DoneAt` DESC SEPARATOR ';') INTO  AuditRejectReason
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId= InOrderId
  AND a.`StepStatus` = '4'
  GROUP BY WorkOrderId;

RETURN AuditRejectReason;

END

fn_GetServiceAuditRejectRemarkById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditRejectRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditRejectRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditRejectRemarkById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(200) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
/*壹好车服_根据工单Id获取质检不通过备注*/
DECLARE OutAuditRemark VARCHAR(200);

  SELECT a.Remark INTO OutAuditRemark
  FROM tb_workflowinfo a
  WHERE StepName IN ('质检不通过','质检驳回')
  AND a.WorkOrderId=InOrderId
  ORDER BY a.DoneAt DESC
  LIMIT 1;

RETURN OutAuditRemark;

END

fn_GetAFCSetOutTimeById

{
  "message": "\u51fd\u6570 fn_GetAFCSetOutTimeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCSetOutTimeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCSetOutTimeById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN
  DECLARE SetOutTime VARCHAR(50) ;
  SELECT a.DoneAt INTO SetOutTime
  FROM tb_workflowinfo a
  WHERE StepName= '出发'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  AND a.StepStatus = '1'
  ORDER BY StartedAt DESC
  LIMIT 1;

  RETURN SetOutTime;
END

fn_dfnextval

{
  "message": "\u51fd\u6570 fn_dfnextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_dfnextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_dfnextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE df_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetCustomerAppointRemarkById

{
  "message": "\u51fd\u6570 fn_GetCustomerAppointRemarkById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCustomerAppointRemarkById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCustomerAppointRemarkById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取客户异常反馈记录拼接(弃用)'
BEGIN
DECLARE OutRemark varchar(500);
/*
SELECT GROUP_CONCAT(CONCAT(
'提交时间:',a.CreatedAt,
IF(
IFNULL(a.Remark,a.FailText) IS NULL,';',
CONCAT(',备注:',
IFNULL(a.Remark,a.FailText),';')))) INTO OutRemark
FROM tb_appointment a
WHERE a.WorkOrderId=InWorkOrderId
AND a.AppointSource = 3
AND a.Deleted=0;*/

RETURN OutRemark;
END

fn_formversionnumber

{
  "message": "\u51fd\u6570 fn_formversionnumber \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_formversionnumber`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_formversionnumber`(InformInfoCode varchar(30)) RETURNS varchar(7) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
    DECLARE InVersionNumber VARCHAR(255);
    DECLARE OutVersionNumber VARCHAR(255);

    SELECT a.VersionNumber 
    INTO InVersionNumber
    FROM df_forminfo a
    INNER JOIN (SELECT MAX(Id)AS Id,
                       VersionNumber
                FROM df_forminfo
                WHERE Deleted = 0
                GROUP BY FormCode) b
    ON a.Id = b.Id
    WHERE  FormCode = InformInfoCode;

    #拼接字符串
    SELECT concat('V',substring_index(substring_index(InVersionNumber,'.',1),'V',-1)+1,'.0') INTO OutVersionNumber;
     
    IF OutVersionNumber IS NULL OR ''
    THEN RETURN 'V1.0';
    ELSE RETURN OutVersionNumber;
    END IF ;

END

fn_GetVhsFileStatus

{
  "message": "\u51fd\u6570 fn_GetVhsFileStatus \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetVhsFileStatus`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetVhsFileStatus`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取车务文件归还状态'
BEGIN
	RETURN (
	SELECT a.ReceiveState
      FROM tb_vhsworkfilereceiveinfo a
     WHERE a.WorkOrderId=InOrderId
	   AND a.ReceiveType=InType
       AND a.Deleted=0
     LIMIT 1);

END

fn_GetFirstAppointPersonById

{
  "message": "\u51fd\u6570 fn_GetFirstAppointPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetFirstAppointPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetFirstAppointPersonById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈提交人姓名/账号(弃用)'
BEGIN
/*
	IF OutType = 1 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC 
     LIMIT 1);
	ELSEIF OutType=2 THEN 
	RETURN (
	SELECT OperatorName
      FROM `tb_appointment` 
     WHERE `WorkOrderId` =InOrderId
		   AND AppointSource IN (1,3) #只需要一线异常反馈记录+智能改约
       AND `Deleted` =0
	   AND AppointStatus <> 5
     ORDER BY `CreatedAt` ASC  
     LIMIT 1);
	END IF;*/
    return null;
END

fn_GetTeamNameByCode

{
  "message": "\u51fd\u6570 fn_GetTeamNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetTeamNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetTeamNameByCode`(
`InCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据团队Code获取团队名称'
BEGIN
    DECLARE OutTeamName varchar(50);
    SELECT TeamName INTO OutTeamName
    FROM basic_teaminfo
    WHERE TeamCode=InCode
    AND Deleted=0
    LIMIT 1;

	RETURN OutTeamName;
END

fn_GetWorkOrderLastDoneAt

{
  "message": "\u51fd\u6570 fn_GetWorkOrderLastDoneAt \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkOrderLastDoneAt`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkOrderLastDoneAt`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStep` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS datetime
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取工作流步骤的最后一次的结束时间(弃用)'
BEGIN
RETURN null;/* (
	SELECT `DoneAt`  
      FROM `tb_workflowinfo` 
     WHERE `StepName` =InStep 
       AND `Deleted` =0 
       AND `WorkOrderId` =InWorkOrderId
     ORDER BY `DoneAt` DESC 
    LIMIT 1
);*/
END

fn_nexbatchtval

{
  "message": "\u51fd\u6570 fn_nexbatchtval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nexbatchtval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nexbatchtval`(
Dseq_no char(2) CHARSET utf8,
BatchValue INT(11)
) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value - BatchValue)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no, LPAD(LAST_INSERT_ID(), 10, 0));
        
END

fn_GetWorkFlowLastPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowLastPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowLastPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowLastPersonInfo`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InStepName` varchar(50) charset utf8 collate utf8_general_ci ,`OutType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id、步骤名称获取步骤最后一次处理人信息'
BEGIN
DECLARE OutPerson varchar(50);

IF OutType=1 #获取Code
THEN
SELECT a.OperCode INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;
IF OutType=2 #获取Name
THEN
SELECT a.OperName INTO OutPerson
FROM tb_workflowinfo a
WHERE a.WorkOrderId=InWorkOrderId
AND a.StepName=IF(InStepName='当前处理人',a.StepName,InStepName)
AND a.Deleted=0
ORDER BY `StartedAt` DESC 
LIMIT 1;
END IF;

RETURN OutPerson;
END

fn_GetDictNameById

{
  "message": "\u51fd\u6570 fn_GetDictNameById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetDictNameById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetDictNameById`(
InId char(12)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutDictName varchar(50);

SELECT Name INTO OutDictName
FROM basic_datadictionary
WHERE Id=InId
AND Deleted=0;

RETURN OutDictName;
END

fn_GetWorkFlowPersonInfo

{
  "message": "\u51fd\u6570 fn_GetWorkFlowPersonInfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetWorkFlowPersonInfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetWorkFlowPersonInfo`(InWorkOrderId char(12), InStepName varchar(50),

                                                                 OutType smallint(1)) RETURNS varchar(50) CHARSET utf8
BEGIN

    DECLARE OutPerson varchar(50);

    DECLARE InWorkStatus varchar(50);



    SELECT WorkStatus INTO InWorkStatus FROM TB_WORKORDERINFO WHERE ID = InWorkOrderId AND Deleted = 0;

    IF OutType = 1 #获取Code

    THEN

        SELECT a.OperCode

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;



    IF OutType = 2 #获取Name

    THEN

        SELECT a.OperName

        INTO OutPerson

        FROM tb_workflowinfo a

        WHERE a.StepName = InStepName

          AND a.WorkOrderId = InWorkOrderId

          AND a.Deleted = 0

        ORDER BY a.DoneAt DESC

        LIMIT 1;

    END IF;

    IF InStepName = '当前处理人'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT a.OperCode

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT a.OperName

            INTO OutPerson

            FROM tb_workflowinfo a

            WHERE a.WorkOrderId = InWorkOrderId

              AND a.Deleted = 0

            ORDER BY a.DoneAt DESC

            LIMIT 1;

        END IF;

    END IF;



    IF InStepName = '接单'

    THEN

        IF OutType = 1 #获取Code

        THEN

            SELECT c.LoginName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.LoginName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;



        END IF;

        IF OutType = 2 #获取Name

        THEN

            SELECT c.FullName

            INTO OutPerson

            FROM serviceordercenter.workflowruntimeitems a,

                 serviceordercenter.workflowruntimesteps b,

                 serviceordercenter.workflowruntimeactors c

            WHERE a.TargetEntityId = InWorkOrderId

              and a.id = b.RuntimeItemId

              AND B.ID = C.RuntimeStepId

              AND C.Processed = 1

              AND C.Deleted = 0

              and b.Deleted = 0

              AND a.Deleted = 0

              and b.Name in ('提交处理结果', '重新提交处理结果')

            ORDER BY b.DoneAt DESC

            LIMIT 1;



            IF OutPerson IS NULL

            THEN

                SELECT c.FullName

                INTO OutPerson

                FROM serviceordercenter.workflowCOMPLETEitems a,

                     serviceordercenter.workflowCOMPLETEsteps b,

                     serviceordercenter.workflowCOMPLETEactors c

                WHERE a.TargetEntityId = InWorkOrderId

                  and a.id = b.RuntimeItemId

                  AND B.ID = C.RuntimeStepId

                  AND C.Processed = 1

                  AND C.Deleted = 0

                  and b.Deleted = 0

                  AND a.Deleted = 0

                  and b.Name in ('提交处理结果', '重新提交处理结果')

                ORDER BY b.DoneAt DESC

                LIMIT 1;

            END IF;

        END IF;

    END IF;



    RETURN OutPerson;

END

fn_GetRequestClosePersonById

{
  "message": "\u51fd\u6570 fn_GetRequestClosePersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetRequestClosePersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetRequestClosePersonById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最新的请求人'
BEGIN
	RETURN (
		SELECT OperatorName
		FROM `tb_appointment` 
		WHERE `WorkOrderId` =InWorkOrderId
		AND `Deleted` =0
		AND AppointStatus = 3
		ORDER BY `CreatedAt` DESC  
		LIMIT 1
	);
	
END

fn_GetUserRoleConcatbyId

{
  "message": "\u51fd\u6570 fn_GetUserRoleConcatbyId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetUserRoleConcatbyId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetUserRoleConcatbyId`(
`InUserInfoId` char(12) charset utf8mb4 collate utf8mb4_0900_ai_ci ,`InRuleGroupCode` varchar(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(1000) CHARSET utf8mb4
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '₩ᅠᄍ₩ヘᆴ¦ᄎᄎ¥ムリ│ᄃト¥ネル￧ᄏト¥ミネ¦ᄎᄎ¥ムリID│ホᄋ¥マヨ¦ᄎᄎ¥ムリ│ᄃト¥ネル¥フᄎ¥゚゚'
BEGIN

	RETURN (

		SELECT

			a.UserRoleConcat 

		FROM

			(

			SELECT

				a.UserInfoId,

				a.RuleGroupCode,

				GROUP_CONCAT(CONCAT_WS(';',CONCAT( x.ConcatStr, ':', y.ConcatStr ),CONCAT( x.ConcatStr, ':', z.ConcatStr )) SEPARATOR ';' 

			    ) AS UserRoleConcat 

			FROM

				tb_userrulegroupinfo a

				LEFT JOIN tb_userruleinfo b ON a.Id = b.UserRuleGroupInfoId 

				AND b.Deleted = 0 

				AND b.RuleCode = 'OrderType'

				LEFT JOIN tb_userruleinfo c ON a.Id = c.UserRuleGroupInfoId 

				AND c.Deleted = 0 

				AND c.RuleCode = 'Areas'

				LEFT JOIN tb_userruleinfo d ON a.Id = d.UserRuleGroupInfoId 

				AND d.Deleted = 0 

				AND b.RuleCode = 'CustStore'

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) x ON b.Id = x.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) y ON c.Id = y.UserRuleId

				LEFT JOIN (

				SELECT

					UserInfoId,

					UserRuleId,

					GROUP_CONCAT( IFNULL( RuleItemConcatName, RuleItemName ) SEPARATOR '、' ) AS ConcatStr 

				FROM

					tb_userruleiteminfo 

				WHERE

					Deleted = 0 

				GROUP BY

					UserRuleId 

				) z ON d.Id = z.UserRuleId 

			WHERE

				a.Deleted = 0 

				AND a.RuleGroupCode <> 'AFCRule001'

			and a.RuleGroupCode = InRuleGroupCode

			AND a.UserInfoId = InUserInfoId

			GROUP BY

				a.UserInfoId,

				a.RuleGroupCode 

			) a

	    limit 1

		);

	

END

fn_GetLastAppointReasonById

{
  "message": "\u51fd\u6570 fn_GetLastAppointReasonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointReasonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointReasonById`(
`InOrderId` varchar(500) charset utf8 collate utf8_general_ci ) RETURNS varchar(500) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取第一次异常反馈原因'
BEGIN

	RETURN (

	SELECT Remark

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3) #一线异常反馈记录+智能改约

       AND `Deleted` =0

	   AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_nextval

{
  "message": "\u51fd\u6570 fn_nextval \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_nextval`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_nextval`(
`Dseq_no` char(2) charset utf8 collate utf8_general_ci ) RETURNS char(12) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN
   
   UPDATE sys_sequence
      SET current_value = LAST_INSERT_ID(current_value + increment)
    WHERE seq_no = Dseq_no;
   
   RETURN CONCAT(Dseq_no,LPAD(CAST(LAST_INSERT_ID() AS CHAR),10,0));
	
END

fn_GetAfcDispatcherName

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherName \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherName`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherName`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperName INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;

/*

IF OutPerson IS NULL

THEN

SELECT CreatePersonName INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;*/



RETURN OutPerson;

END

fn_GetCloseStatusNameByOrderId

{
  "message": "\u51fd\u6570 fn_GetCloseStatusNameByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetCloseStatusNameByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetCloseStatusNameByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取工单申请关闭状态名称'
BEGIN
  DECLARE OutStatusName VARCHAR(50);

  SELECT CASE a.`TypeStatus` WHEN 1 THEN '请求关闭(客户审核)' WHEN 2 THEN '请求关闭' WHEN 3 THEN '等通知'
  END INTO OutStatusName
  FROM `tb_workorderstatus` a
  WHERE a.`WorkOrderId`=InOrderId
  AND a.Deleted=0
  LIMIT 1;

	RETURN OutStatusName;
END

fn_GetSendPersonByOrderId

{
  "message": "\u51fd\u6570 fn_GetSendPersonByOrderId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSendPersonByOrderId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSendPersonByOrderId`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取派单人(弃用)'
BEGIN
  DECLARE OutSendPerson VARCHAR(50) ;
  /*
  SELECT a.OperName INTO OutSendPerson
  FROM tb_workflowinfo a
  WHERE a.StepName LIKE '%分派%'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY DoneAt
  LIMIT 1;*/

  RETURN OutSendPerson;
END

fn_GetSubjectClassNameByCode

{
  "message": "\u51fd\u6570 fn_GetSubjectClassNameByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectClassNameByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectClassNameByCode`(
InCode varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE SubjectClassName varchar(50);

SELECT Name INTO SubjectClassName
FROM tb_subjectclass
WHERE Code=InCode
AND Deleted=0;

RETURN SubjectClassName;
END

fn_GetSubjectNameConcat

{
  "message": "\u51fd\u6570 fn_GetSubjectNameConcat \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSubjectNameConcat`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSubjectNameConcat`(
InWorkOrderId CHAR(12)
) RETURNS varchar(500) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取壹好车服服务科目信息(弃用)'
BEGIN
	RETURN null ;
	/*(SELECT GROUP_CONCAT(IFNULL(SubjectName,'') ORDER BY InsertTime  SEPARATOR '+')
	FROM tb_workservicesubject
	WHERE WorkOrderId=InWorkOrderId
	AND Deleted=0);*/

END

fn_GetAppointById

{
  "message": "\u51fd\u6570 fn_GetAppointById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAppointById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAppointById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`OutType` smallint ) RETURNS varchar(5000) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单ID获取第一条或最后一条预约记录'
BEGIN

	/* #2.5.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(IFNULL(CreatedAt,''),IFNULL(OperatorCode,''),IFNULL(OperatorName,''),':',IFNULL(Remark,''),',',IFNULL(FailText,''),';') ORDER BY `CreatedAt`)

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

       AND `Deleted` =0

	); 

	END IF; */







	

	#2.8.0

	IF OutType = 1 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` ASC

	LIMIT 1);

	ELSEIF OutType = 2 THEN 

	RETURN (

	SELECT CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime)),';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

       AND AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC

	LIMIT 1);



	ELSEIF OutType = 3 THEN 

	RETURN (

	SELECT GROUP_CONCAT(CONCAT(CreatedAt,IF(FailText IS NULL,'',CONCAT(',',FailText)),IF(Remark IS NULL,'',CONCAT(',',Remark)),IF(NextContactTime IS NULL,'',CONCAT(',',NextContactTime))) ORDER BY `CreatedAt` DESC SEPARATOR ';')

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InWorkOrderId

        AND AppointSource IN (1,3)

       AND `Deleted` =0

	);  

	END IF;

END

fn_GetOrderTypeByCode

{
  "message": "\u51fd\u6570 fn_GetOrderTypeByCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetOrderTypeByCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetOrderTypeByCode`(
InOrderType varchar(50)) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutOrderType varchar(50);

SELECT TypeName INTO OutOrderType
FROM basic_ordertypeinfo
WHERE TypeCode=InOrderType
AND Deleted=0;

RETURN OutOrderType;
END

fn_GetLastAppointStatusCodeById

{
  "message": "\u51fd\u6570 fn_GetLastAppointStatusCodeById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetLastAppointStatusCodeById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetLastAppointStatusCodeById`(
`InOrderId` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS smallint(6)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '获取最后一次异常反馈状态'
BEGIN

	RETURN (

	SELECT AppointStatus

      FROM `tb_appointment` 

     WHERE `WorkOrderId` =InOrderId

		   AND AppointSource IN (1,3)

       AND `Deleted` =0

			 and AppointStatus <>5 #not in(5,10)

     ORDER BY `CreatedAt` DESC 

     LIMIT 1);



END

fn_getstaffacquisitiontaginfo

{
  "message": "\u51fd\u6570 fn_getstaffacquisitiontaginfo \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_getstaffacquisitiontaginfo`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_getstaffacquisitiontaginfo`(
`InId` varchar(12) charset utf8 collate utf8_general_ci ,`InTag` varchar(50) charset utf8 collate utf8_general_ci ) RETURNS varchar(1000) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '获取人员招募标签表信息'
return

(select group_concat(b1.ValueName separator '、') as ValueName

        from tb_staffacquisitiontaginfo b1

        where b1.StaffAcquisitionInfoId= InId

          and b1.Deleted = 0

          and b1.tag = InTag

       )

fn_GetAFCServiceAuditTimesById

{
  "message": "\u51fd\u6570 fn_GetAFCServiceAuditTimesById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAFCServiceAuditTimesById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAFCServiceAuditTimesById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS int(11)
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取质检不通过次数'
BEGIN
  DECLARE NOAuditTimes INT;
  SELECT COUNT(1) INTO NOAuditTimes
  FROM tb_workflowinfo a
  WHERE StepName = '质检'
  AND a.WorkOrderId=InOrderId
  AND a.`StepStatus` = '4'
  AND a.Deleted=0;

  RETURN NOAuditTimes;
END

fn_GetServiceAuditFirstPersonById

{
  "message": "\u51fd\u6570 fn_GetServiceAuditFirstPersonById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetServiceAuditFirstPersonById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetServiceAuditFirstPersonById`(
`InOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '壹好车服_根据工单Id获取首次质检人员'
BEGIN
  DECLARE OutAuditPerson VARCHAR(50) ;
  SELECT a.OperName INTO OutAuditPerson
  FROM tb_workflowinfo a
  WHERE StepName= '质检'
  AND a.WorkOrderId=InOrderId
  AND a.Deleted=0
  ORDER BY StartedAt ASC
  LIMIT 1;

  RETURN OutAuditPerson;
END

fn_GetSpecialTagByWorkId

{
  "message": "\u51fd\u6570 fn_GetSpecialTagByWorkId \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetSpecialTagByWorkId`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetSpecialTagByWorkId`(
		InWorkOrderId char(12)
) RETURNS varchar(20) CHARSET utf8
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取标记取最小Id一条'
BEGIN
	DECLARE OutTag varchar(20);
  
	SELECT a.Value INTO OutTag FROM tb_custcolumn a WHERE a.Deleted = 0 AND a.WorkOrderId = InWorkOrderId AND TypeName = '标记' LIMIT 1;

	RETURN IFNULL(OutTag,'');

END

fn_GetAfcDispatcherCode

{
  "message": "\u51fd\u6570 fn_GetAfcDispatcherCode \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetAfcDispatcherCode`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetAfcDispatcherCode`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ) RETURNS varchar(50) CHARSET utf8
    SQL SECURITY INVOKER
BEGIN

DECLARE OutPerson varchar(50);



SELECT a.OperCode INTO OutPerson

FROM tb_workflowinfo a

WHERE a.StepName='派单'

AND a.WorkOrderId=InWorkOrderId

AND a.Deleted=0

ORDER BY a.DoneAt DESC

LIMIT 1;



IF OutPerson IS NULL

THEN

SELECT CreatePersonCode INTO OutPerson

FROM tb_workorderinfo

WHERE Id =InWorkOrderId

AND Deleted = 0;

END IF;



RETURN OutPerson;

END

fn_GetQualityPerById

{
  "message": "\u51fd\u6570 fn_GetQualityPerById \u7684\u5b9a\u4e49\u4e0d\u540c",
  "type": "definition_mismatch"
}

变更SQL:

DROP FUNCTION IF EXISTS `fn_GetQualityPerById`;
CREATE DEFINER=`user_service`@`%` FUNCTION `fn_GetQualityPerById`(
`InWorkOrderId` char(12) charset utf8 collate utf8_general_ci ,`InType` smallint(1) ) RETURNS varchar(64) CHARSET utf8
    DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT '根据工单Id获取最新质检人id或工号或姓名'
BEGIN
	RETURN (
	SELECT  CASE InType 
                 WHEN 1 THEN OperId
                 WHEN 2 THEN OperCode
                 WHEN 3 THEN OperName
            END 
      FROM `tb_workflowinfo`   
     WHERE `WorkOrderId` =InWorkOrderId
       AND `StepName` IN ('质检','质检不通过')
       AND `Deleted` =0
     ORDER BY DoneAt DESC 
     LIMIT 1);
END